ここでは、私のアプリケーションからの2つの例を示します。メインでは、GTKウィジェットを変数にバインドし、他のモジュールで実装するコールバック関数にバインドします。 - 変数
へ(グレイドファイルで定義されている)ウィンドウ "メインウィンドウ" を結合し
:アプリケーションを終了するには -
gui <- builderNew
builderAddFromFile gui "myGUI.glade"
:
グレイドファイルをロード--to
mainWindow <- builderGetObject gui castToWindow "mainWindow"
- 変数
mQuit <- builderGetObject gui castToMenuItem "menu_Quit"
にメニュー項目(グレイドファイルで定義された) "menu_Quit" をバインドします
- GTK関数に "widgetDestroy"
on mQuit menuItemActivate $ widgetDestroy mainWindow
をメニュー項目をバインド - GTK関数に
on mainWindow objectDestroy mainQuit
を "mainQuitを" メインウィンドウのイベント "objectDestroyを" バインド - 呼び出すには機能、ユーザーが別のメニュー項目を選択すると、「menu_About」と言う:
- 変数
にメニュー項目をバインド
- メニュー項目が
on mAbout menuItemActivate $ do
aboutDialog <- builderGetObject gui castToDialog "aboutDialog"
set aboutDialog [ widgetVisible := True ]
dialogRun aboutDialog
set aboutDialog [ widgetVisible := False ]
あなたは多分あなたはGTKへの応答すべてを定義するモジュールで、関数内で行うブロックを置くことができる(グレイドファイルで定義された)ダイアログについて示して作りますイベント:
showAboutDialog :: Builder -> IO()
showAboutDialog gui = [insert do block here]
は、次に、あなただけでmenuItemActivate後にインクルードは、ブロックを行う置き換えることができ:
on mAbout menuItemActivate $ showAboutDialog gui
BuilderオブジェクトをshowAboutDialogに渡すのは、その関数がGladeファイルからダイアログを取得する必要があるためです。
ありがとうございました!これは私のプロジェクトでGUIを手に入れるのに本当に役立っています。 – donatello