C++ gtk打开多个窗口

标签 c++ gtk gtkmm

我仍在处理此链接中的示例:gtkmm statusicon quits after creation 我用这种方式更改了功能以打开托盘栏不同的窗口,但没有显示任何内容。

void Tray::on_statusicon_popup(guint button, guint activate_time) {
    printf("popup!\n");
    Gtk::Window w;
    w.show();
}

我试图用“Gtk::Main::run(w);”运行每个窗口它有效,但我不想为每个窗口运行主循环。

最佳答案

您正在堆栈上创建窗口对象,因此它会在 on_statusicon_popup() 返回后立即被销毁。如果您希望窗口比函数调用更持久,您需要在堆上创建它并连接到它的“隐藏”信号(或类似信号)并从那里删除对象。

关于C++ gtk打开多个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3633810/

相关文章:

c++ - copy-and-swap 习语在 self 分配期间如何工作?

c++ - 嵌入 Boost.Python 时导致 Python 的 __main__ 消失的原因

ubuntu - 将字符串对象添加到 gArray

linux - GCC 使用 GTK+3 时遇到内存不足问题

c++ - Gtkmm - 更改窗口的最小尺寸

c++ - Gtkmm2.4 中的 Signal_draw

c++ - 随机数独生成

c - 为 GTK-4.0 设置 Eclipse

c++ - GTKMM/C++11 : How to create a custom composite widget out of other widgets?

C++ boost : Simple nested dictionary?