Qt for Pythonで終了するだけのアプリケーションを作成


タイトルの通り、Qt for Pythonを利用して、ウィンドウを表示して、メニューで「終了」を選択すると終了するアプリケーションを作成します。

環境構築

あらかじめQt for Pythonが対応するバージョンのPythonが導入されていることを前提とします。検証した環境ではPython 3.6が導入されています。

以下のコマンドでQt for Python(PySide2)を導入します。

pip install PySide2

ソースコード

from PySide2.QtWidgets import QApplication
from PySide2.QtWidgets import QMainWindow
from PySide2.QtWidgets import QMenu
from PySide2.QtWidgets import QAction
from PySide2.QtGui import QKeySequence

class MainWindow(QMainWindow):
    def __init__(self, app: QApplication):
        super(MainWindow, self).__init__()
        self.app = app
        self.setWindowTitle("サンプルプログラム")
        self.resize(400,200)

    def main(self) -> None:
        # 「終了」項目の作成
        exit_action = QAction('終了(&X)', self)
        # 「終了」項目が選択された場合に起動する関数を設定
        exit_action.triggered.connect(self.exit)
        # 「終了」項目を選択するショートカットキーを設定
        exit_action.setShortcut(QKeySequence("Ctrl+Q"))

        # 「ファイル」メニューを作成
        file_menu = QMenu("ファイル(&F)")
        # 「ファイル」メニューに「終了」項目を追加
        file_menu.addAction(exit_action)
        # 「ファイル」メニューをメニューバーに追加
        self.menuBar().addMenu(file_menu)
        self.show()
        self.app.exec_()

    def exit(self) -> None:
        self.close()

def main() -> None:
    app = QApplication()
    window = MainWindow(app)
    window.main()

if __name__ == '__main__':
    main()

起動方法

上記のソースコードを適当なファイル名で保存します。たとえばファイル名をmain.pyとすると、以下のコマンドで起動します。

python main.py

以下の画面が表示されます。

操作方法

以下のいずれかの方法でアプリケーションを終了します。

  1. マウスで「ファイル」メニューを選択して、開いたメニューから「終了」項目を選択すると、アプリケーションが終了します。
  2. alt+fで「ファイル」メニューを開いて、alt+xでアプリケーションが終了します。
  3. ctrl+qでアプリケーションが終了します。