C++ c++;gtk打开多窗口

C++ c++;gtk打开多窗口,c++,gtk,gtkmm,C++,Gtk,Gtkmm,我仍在处理此链接中的示例: 我以这种方式更改了函数以打开traybar的不同窗口,但没有显示任何内容 void Tray::on_statusicon_popup(guint button, guint activate_time) { printf("popup!\n"); Gtk::Window w; w.show(); } 我尝试使用“Gtk::Main::run(w);”运行每个窗口,但我不想为每个窗口运行主循环。您正在堆栈上创建窗口对象,因此在返回on_sta

我仍在处理此链接中的示例: 我以这种方式更改了函数以打开traybar的不同窗口,但没有显示任何内容

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()
后,它会立即被销毁。如果您想让窗口在函数调用之后继续运行,您需要在堆上创建它,并连接到它的“隐藏”信号(或类似信号),然后从那里删除对象。

我不明白。。。如何从函数在堆上创建它们?
Gtk::Window*w=new Gtk::Window()
??