QCloseEvent Class
QCloseEvent クラスには、閉じるイベントを表すパラメータが含まれています。詳細...
| ヘッダー: | #include <QCloseEvent> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 継承元: | QEvent |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QCloseEvent はEvent Classes に属します。
パブリック関数
プロテクトされた関数
| QCloseEvent(QCloseEvent &&) | |
| QCloseEvent & | operator=(QCloseEvent &&) |
| QCloseEvent & | operator=(const QCloseEvent &other) |
詳細な説明
閉じるイベントは、ユーザーがウィンドウメニューから「閉じる」を選択するか、X のタイトルバーボタンをクリックするなどして、閉じることを希望するウィジェットに送信されます。また、QWidget::close() を呼び出してプログラムでウィジェットを閉じる場合にも送信されます。
Close イベントには、受信側がウィジェットの閉じることを希望しているかどうかを示すフラグが含まれています。 ウィジェットが閉じるイベントを受け入れると、そのウィジェットは非表示になります(Qt::WA_DeleteOnClose フラグを指定して作成された場合は破棄されます)。閉じるイベントの受け入れを拒否した場合、何も起こりません。(X11環境では、ウィンドウマネージャがウィンドウを強制的に閉じる可能性がありますが、本書執筆時点では、そのような動作を行うウィンドウマネージャは確認されていません。)
イベントハンドラ `QWidget::closeEvent()` は、close イベントを受け取ります。このイベントハンドラのデフォルトの実装は、close イベントを受け入れます。ウィジェットを非表示にしたくない場合や、特別な処理を行いたい場合は、イベントハンドラを再実装し、ignore() を使用してイベントを拒否する必要があります。
ウィジェットが閉じられた際に削除されるようにしたい場合は、Qt::WA_DeleteOnClose フラグを指定してウィジェットを作成してください。これは、マルチウィンドウアプリケーションにおける独立したトップレベルウィンドウにとって非常に有用です。
QObjects は、削除された際に `destroyed()` シグナルを発行します。
最後のトップレベルウィンドウが閉じられると、QGuiApplication::lastWindowClosed() シグナルが発信されます。
isAccepted() 関数は、イベントの受信者がウィジェットの閉じに同意している場合、true を返します。ウィジェットの閉じに同意するにはaccept() を呼び出し、このイベントの受信者がウィジェットの閉じを望まない場合はignore() を呼び出してください。
関連項目: QWidget::close()、QWidget::hide()、QObject::destroyed()、QCoreApplication::exec()、QCoreApplication::quit()、およびQGuiApplication::lastWindowClosed()。
メンバ関数のドキュメント
QCloseEvent::QCloseEvent()
closeイベントオブジェクトを作成します。
accept()も参照してください 。
[protected delete] QCloseEvent::QCloseEvent(QCloseEvent &&)
QCloseEvent のインスタンスをムーブコンストラクタで生成します。この関数は削除されています。
[protected delete] QCloseEvent &QCloseEvent::operator=(QCloseEvent &&)
other をこのQCloseEvent インスタンスに割り当てます。この関数は削除されます。
[noexcept protected default] QCloseEvent &QCloseEvent::operator=(const QCloseEvent &other)
other をこのQCloseEvent インスタンスにコピーして割り当てます。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.