c ++ gtk打开多个窗口

时间:2010-09-03 07:34:07

标签: 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);”运行每个窗口。它有效,但我不想为每个窗口运行一个主循环。

1 个答案:

答案 0 :(得分:1)

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