我在主窗口中有一个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以外的其他文件调用消息框对话框时,我应该如何传递这个参数?
如何将此消息对话框的父级设置为我希望将其调用的窗口?
如何获得顶级窗口?
答案 0 :(得分:0)
Gtk :: Window是一个瞬态(或父)窗口,它将对话框窗口与之前打开的窗口相关联。
如果您希望对话框将主窗口作为其父窗口,则需要创建一些方法来获取指向主窗口的指针。在应用程序中,通常可以将其存储在全局变量中。如果对你来说不那么简单,你需要发明自己的系统。
在您知道的子窗口小部件上调用Gtk :: Widget :: get_toplevel()可能有所帮助,但我怀疑它并不那么简单。特别是,当您知道子窗口小部件确实在Gtk :: Window中时,您必须确保只调用它。