PyQt5でウィンドウを閉じるアクションを処理する方法


  1. closeEventメソッドをオーバーライドする方法: PyQt5のウィンドウクラスであるQMainWindowやQWidgetをサブクラス化し、closeEventメソッドをオーバーライドすることで、ウィンドウの閉じるアクションを処理することができます。以下に例を示します:
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtCore import Qt
class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
    def closeEvent(self, event):
        # ウィンドウを閉じるアクションの処理を記述
        # ここでは単純にウィンドウを閉じるだけの動作を行っています
        event.accept()
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
  1. QActionを使用する方法: QActionは、メニューバーやツールバーなどのアクションを表すためのクラスです。ウィンドウの閉じるアクションをQActionとして定義し、それに対応するシグナルとスロットを接続することで、ウィンドウの閉じるアクションを処理することができます。以下に例を示します:
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction
class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        close_action = QAction("Close", self)
        close_action.setShortcut("Ctrl+Q")
        close_action.triggered.connect(self.close)
        file_menu = self.menuBar().addMenu("File")
        file_menu.addAction(close_action)
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()

以上の方法を使用することで、PyQt5でウィンドウを閉じるアクションを処理することができます。これらの例はあくまで基本的なものであり、さまざまな要件に合わせてカスタマイズすることができます。