传递Gtk :: Window&参数到Gtk :: MessageDialog

时间:2013-09-11 07:40:46

标签: gtkmm

我在主窗口中有一个gtkmm函数,它在Help-> About选项上打开一个消息框。功能如下: -

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以外的其他文件调用消息框对话框时,我应该如何传递这个参数?

如何将此消息对话框的父级设置为我希望将其调用的窗口?

如何获得顶级窗口?

1 个答案:

答案 0 :(得分:0)

Gtk :: Window是一个瞬态(或父)窗口,它将对话框窗口与之前打开的窗口相关联。

如果您希望对话框将主窗口作为其父窗口,则需要创建一些方法来获取指向主窗口的指针。在应用程序中,通常可以将其存储在全局变量中。如果对你来说不那么简单,你需要发明自己的系统。

在您知道的子窗口小部件上调用Gtk :: Widget :: get_toplevel()可能有所帮助,但我怀疑它并不那么简单。特别是,当您知道子窗口小部件确实在Gtk :: Window中时,您必须确保只调用它。