如何从派生的小部件类内部获取父 Gtk::Window
How to get parent Gtk::Window from inside derived widget class?
我有一个从Gtk::Box
继承的类,所以我可以在运行时创建它的多个实例并将它们动态添加到Gtk::Notebook
中。
但是,如果存在严重错误,我想弹出一条不会在主窗口后面消失的消息,因此我需要从派生的Gtk::Box
类中获取父窗口。
在这里抛开问题(这是针对 GTK,而不是针对 gtkmm),我已经这样做了:
Gtk::Container *parent = this->get_toplevel();
if (parent->get_is_toplevel()) {
Gtk::MessageDialog dlg(*parent, "blah");
dlg.run();
}
但是我收到一个错误,告诉我"没有从 Gtk::容器到 Gtk::窗口的已知转换"。
我应该使用dynamic_cast<>
将Gtk::Container
类型转换为Gtk::Window
吗? 如果是这样,是否没有必要打电话给get_is_toplevel()
?(因为这有点像检查dynamic_cast<>
的结果)。
还是在 gtkmm 中应该有不同的方式?
嗯,这有效,但我不知道它是否正确:
Gtk::Window *parent = dynamic_cast<Gtk::Window *>(this->get_toplevel());
if (parent) {
Gtk::MessageDialog dlg(*parent, "blah");
dlg.run();
}
相关文章:
- Boost Spirit,获取迭代器内部语义动作
- 如何在pugixml中获取节点的内部XML
- 从 qmake 运行脚本以获取内部版本号
- 如何在函数内部使用 zmq(以非阻塞方式)在客户端请求时获取函数的状态?
- 如何通过从变量中获取类型来访问内部 typedef
- ssl3_read_bytes:TLSV1警报内部错误,安全套接字,OpenSSL,C ,获取HTTPS页面
- 获取IntelliSense信息与扩展中的内部
- 如何从对象内部的 typedef 获取模板参数类型
- 如何获取类内部的结构?
- 获取指向自我内部班级的指针
- 从操作员内部获取有关对象的RTTI信息
- 如何从A内部获取值的总和
- 从C++内部获取损坏的符号名称
- 如何获取有关结构/类内部"current type"的信息?
- 如何从派生的小部件类内部获取父 Gtk::Window
- 从直接调用的静态方法内部获取类对象指针
- 如何在C++内部的Google Native Client中获取数组中的值的总和
- 从Vector内部的结构中获取浮点值
- 如何获取方法内部int数组(方法参数)的长度
- 正在获取成员函数内部成员函数的地址