0

Qt アプリケーションを適切に閉じるのにいつも問題があります。Qt::Application を終了する際に注意すべきことは? プログラムが使用する機能に応じて、すべての部分を適切に終了するために従うことができるチェックリストをコンパイルしたいと考えています。たとえば、QThreads を使用する場合、それらが適切にシャットダウンされていることを確認するために何をする必要があるかなど、特別な注意が必要な他のすべての部分についても同様です。

このような問題を抱えているのは私だけではなく、多くの人にとって役立つことを願っています.

4

2 に答える 2

0

適切な C++ 設計以外にチェックリストはありません。残念ながら、 AQThreadは適切なデフォルトの破棄動作を提供しません。C++ の世界では、名目上、それは許されません。スレッドを所有するスレッドが必要QObjectであり、それ自体が消える前に、それらを終了または終了するように注意し、その後、スレッドが破棄される前に待機します。自分で作成したすべてのクラスについても同じことが言えます。破棄されたときに適切に動作する必要があります。Qt は通常、さまざまなクラスのインスタンスが削除されたときに適切に動作し、QThread本当に際立っています。

オブジェクトが破棄時にリソースを解放するという C++ 設計の基本原則に従えば、問題は発生しません。可能な場合は C++11 を含むスマート ポインターを使用します。QPointerQSharedPointerQScopedPointerすべてあなたの友達です。

于 2013-10-08T03:03:41.990 に答える