GTKmm (3.0) と glade によるアプリ (8) - ダイアログのモダールとモードレス表示
今回は、前回の" GTKmm (3.0) と glade によるアプリ (7) - ツールバーの表示、非表示切り替えとaboutダイアログの表示 "で作成したプログラムを使って、aboutダイアログをモーダル表示とモードレス表示 でそれぞれ表示させてみたいと思います。
やり方は、glade 側で指定する方法と cpp で設定する方法の1つあります。
今回は単純なので、ソースコード類は提供しません。
■ glade で設定する方法
この場合、ソースコード側で設定すると、当然コード側を優先するけっかとなりますので、ソースコード側では無設定とします。
上の画像の赤丸で囲んだ箇所が設定する場所です。
現在のシリーズでは glade のXMLデータを実行時に読み込んでいるので、gladeファイルを変更しても、再コンパイルする必要はありませんので、アプリを実行するだけで結果をみることができます。
モードレス (false : 未チェック) 指定時
モーダル (true : チェック) 指定時
■ ソースコードで設定する方法
該当ソースファイルは MainWindow.cpp
〜 void MainWindow::on_app_about() { APP_AboutDialog *about_dialog = nullptr; refBuilder->get_widget_derived("aboutDialog", about_dialog); about_dialog->set_transient_for(*this); // true = modal, false = modeless about_dialog->set_modal(true); about_dialog->show_all(); } 〜
set_modal() 関数を使って、aboutダイアログのモーダル/モードレスを設定します。
true : モーダル
false : モードレス
モーダルを設定する場合、親となる widget を set_transient_for() 関数を使って指定します。
モードレス (false) 設定時
モーダル (true) 設定時
以上です。
簡単でしたね!
GTK+とGladeで作るLinuxプログラミング超入門―かっこいいアプリを自分で作ろう! (CompuBooks)
- 作者: 鈴木哲哉
- 出版社/メーカー: すばる舎
- 発売日: 2000/06
- メディア: 単行本
- クリック: 25回
- この商品を含むブログ (1件) を見る
- 作者: ToshioCP
- 発売日: 2017/06/06
- メディア: Kindle版
- この商品を含むブログを見る