差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
fltk:widget-basic-widgets [2025/05/26 01:40] freemikanfltk:widget-basic-widgets [2025/06/07 08:47] (現在) – [ウィジェットによりGUIを表現する] Fix typo freemikan
行 1: 行 1:
 ====== ウィジェット ====== ====== ウィジェット ======
-{{:fltk:fltk_shadow.png?200|}}+[[fltk:|{{:fltk:fltk_shadow.png?200|}}]]
  
 +このページではFLTKにおいてウィジェットとは何なのかを解説します。
 +
 +===== FLTKのウィジェットはクラス階層で構成されている =====
 FLTKは主にGUIアプリケーションのためのライブラリです。 FLTKは主にGUIアプリケーションのためのライブラリです。
 GUIアプリケーションの見た目や動作を構成する部品は、ウィジェットと呼ばれます。 GUIアプリケーションの見た目や動作を構成する部品は、ウィジェットと呼ばれます。
-FLTKはC++によるオブジェクト指向を中心としてデザインされています。+FLTKはC++のクラスによる古典的なオブジェクト指向を中心としてデザインされています。
 Fl_Widgetクラスをルートとした階層的な関係をもつ、様々なウィジェットが派生クラスで提供されています。 Fl_Widgetクラスをルートとした階層的な関係をもつ、様々なウィジェットが派生クラスで提供されています。
  
 +===== Fl_Widgetは抽象クラスである =====
 Fl_Widgetクラスは抽象クラスであり、直接そのインスタンスオブジェクトを作成して何かをすることはありません。 Fl_Widgetクラスは抽象クラスであり、直接そのインスタンスオブジェクトを作成して何かをすることはありません。
 すべてのウィジェットに共通のインターフェイスと振る舞いを提供するために存在しています。 すべてのウィジェットに共通のインターフェイスと振る舞いを提供するために存在しています。
行 14: 行 18:
 GoFのデザインパターンの[[wpjp>Composite パターン]]を思い出すと良いかもしれません。 GoFのデザインパターンの[[wpjp>Composite パターン]]を思い出すと良いかもしれません。
  
 +===== ウィジェットによりGUIを表現する =====
 具体的には、Fl_Widgetクラスのオブジェクトは、同じFl_Widgetクラスのオブジェクトを子として持つことができます。 具体的には、Fl_Widgetクラスのオブジェクトは、同じFl_Widgetクラスのオブジェクトを子として持つことができます。
 例えば、[[helloworld|Hello World]]では、アプリケーションのウィンドウを表現するFl_Windowクラスのオブジェクト作成して、その中にテキストを表示するためにFl_Boxのオブジェクト作成しました。 例えば、[[helloworld|Hello World]]では、アプリケーションのウィンドウを表現するFl_Windowクラスのオブジェクト作成して、その中にテキストを表示するためにFl_Boxのオブジェクト作成しました。
 Fl_Windowクラスのオブジェクトは親(かつルート)で、Fl_Boxのオブジェクトがその子になっています。 Fl_Windowクラスのオブジェクトは親(かつルート)で、Fl_Boxのオブジェクトがその子になっています。
  
-Hello Worldでは一つの親ウィジェット(ウィンドウ)と一つの子(ボックス)しかありませんでしたが、いくつでも親はいくつでも子を持つことができます。+Hello Worldでは一つの親ウィジェット(ウィンドウ)と一つの子(ボックス)しかありませんでしたが、親はいくつでも子を持つことができます。
 このパターンに従ってGUIアプリケーションを組み立てるというのが、FLTKのウィジェットシステムの基本となっています。 このパターンに従ってGUIアプリケーションを組み立てるというのが、FLTKのウィジェットシステムの基本となっています。
  
----- +===== 参考 ===== 
- +  [[https://www.fltk.org/doc-1.4/classFl__Widget.html|Fl_Widgetクラスのリファレンス]]
-[[https://www.fltk.org/doc-1.4/classFl__Widget.html|Fl_Widgetクラスのリファレンス]]+
  
文書の先頭へ