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 回答