我仍在处理此链接中的示例: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/