gpt4 book ai didi

c++ - 如何从派生小部件类中获取父 Gtk::Window?

转载 作者:行者123 更新时间:2023-11-28 06:30:12 26 4
gpt4 key购买 nike

我有一个继承自 Gtk::Box 的类所以我可以在运行时创建它的多个实例并将它们动态添加到 Gtk::Notebook .

但是,如果出现严重错误,我想弹出一条不会在主窗口后面消失的消息,所以我需要从派生的 Gtk::Box 中获取父窗口。类。

出发the question here (适用于 GTK,不适用于 gtkmm),我这样做了:

Gtk::Container *parent = this->get_toplevel();
if (parent->get_is_toplevel()) {
Gtk::MessageDialog dlg(*parent, "blah");
dlg.run();
}

但是我收到一条错误消息,告诉我“没有已知的从 Gtk::Container 到 Gtk::Window 的转换”。

我应该使用 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();
}

关于c++ - 如何从派生小部件类中获取父 Gtk::Window?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27739735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com