トップレベル ウィンドウを閉じずに非表示にするにはどうすればよいですか?
NdmWindow は Gtk::Window から継承されたクラスです。NdmWindow のインスタンスを Gtk::Application に追加しました。
では、閉じるのではなく非表示にするにはどうすればよいですか?
前もって感謝します..
thisによると、ウィンドウが非表示になると から削除されるGtk::Applicationため、最後のウィンドウである場合はアプリが終了するという動作です。
ウィンドウが表示されていないときにアプリケーションを実行し続けたい場合の解決策は、オブジェクトを呼び出しhold()てGtk::Applicationアプリケーションの参照カウントを増やすことです。おそらく、ウィンドウを設定する前にこれを行いrelease()、終了ロジックの一部として対応するものを呼び出します。
window->hide();
Gtk::Windowから継承するクラスを確認することを忘れないでください。
編集
わかりませんが、私の提案は、 を試してからhold()、release()次のウィンドウを表示することです。
機能するソリューションと機能しないソリューションを次に示しsegfaultます。への参照を保存しGtk::Application、メインにパラメーターとして送信してWindow classこれを呼び出しvar appます。後で必要になります。場合によってget_application()は が返されるため、必要ですnull。
ウィンドウ呼び出しの削除イベント ハンドラで
app->hold();
hide();
return true;
app->release()アプリケーションを完全に終了させるため、ウィンドウを再度表示したい場合は呼び出さないでください。set_visible()window オブジェクトを呼び出すだけで表示されます。