差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
fltk:widget-basic-widgets [2025/05/26 01:39] – Add a link to Fl_Widget renference freemikan | fltk:widget-basic-widgets [2025/06/07 08:47] (現在) – [ウィジェットによりGUIを表現する] Fix typo freemikan | ||
---|---|---|---|
行 1: | 行 1: | ||
====== ウィジェット ====== | ====== ウィジェット ====== | ||
- | {{: | + | [[fltk:|{{: |
+ | このページでは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> | GoFのデザインパターンの[[wpjp> | ||
+ | ===== ウィジェットにより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:// | + | ===== 参考 ===== |
+ | * [[https:// | ||