0

私はまだこのリンクの例に取り組んでいます: 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);」ですべてのウィンドウを実行しようとしました。それは機能しますが、ウィンドウごとにメインループを実行したくありません。

4

1 に答える 1

1

スタック上にウィンドウ オブジェクトを作成しているため、返された直後に破棄されon_statusicon_popup()ます。ウィンドウを関数呼び出しより長持ちさせたい場合は、ヒープ上にウィンドウを作成し、その「非表示」シグナル (または同様のもの) に接続して、そこからオブジェクトを削除する必要があります。

于 2010-09-03T13:39:00.203 に答える