0

メイン ウィンドウの gtkmm に、[ヘルプ] -> [バージョン情報] の選択でメッセージ ボックスを開く機能があります。機能は次のとおりです。

bool Main_window::on_about_selected(GdkEventButton *f_event)
 {
   Gtk::MessageDialog dialog(*this, "Msg Box example");
   // left the rest
   dialog.run();
 }

このポインターは関数を呼び出すため、Main_window を渡します。

Main_window 以外の別のファイルからメッセージ ボックス ダイアログを呼び出したい場合、この引数をどのように渡す必要がありますか?

このメッセージ ダイアログの親を、これを呼び出したいウィンドウに設定するにはどうすればよいですか?

最上位ウィンドウを取得するにはどうすればよいですか?

4

1 に答える 1

0

その Gtk::Window は一時的な (または親) ウィンドウであり、ダイアログ ウィンドウを以前に開いたウィンドウに関連付けます。

ダイアログにメイン ウィンドウを親として持たせたい場合は、メイン ウィンドウへのポインタを取得する何らかの方法を作成する必要があります。アプリケーションでは、通常、グローバル変数に格納するだけで問題ありません。それほど単純でない場合は、独自のシステムを発明する必要があります。

あなたが知っている子ウィジェットで Gtk::Widget::get_toplevel() を呼び出すと役立つかもしれませんが、それほど単純ではないと思います。特に、子ウィジェットが実際に Gtk::Window にあることがわかっている場合にのみ呼び出す必要があります。

于 2013-09-11T19:21:14.413 に答える