我仍然在这个链接的例子上工作: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);”运行每个窗口。它有效,但我不想为每个窗口运行一个主循环。
答案 0 :(得分:1)
您正在堆栈上创建窗口对象,因此在on_statusicon_popup()
返回后会立即销毁它。如果你希望窗口比函数调用更久,你需要在堆上创建它并连接到它的'hide'信号(或类似的)并从那里删除对象。