チュートリアル:Qt Widgets とPython
まず、Qt for Python アプリケーションプロジェクトを作成します。次に、ボイラープレートコードを編集して、Qt Widgetsを使用して「Hello World」というテキストを複数の言語で表示する簡単なアプリケーションを開発します。

Qt for Python アプリケーションの作成に関するその他の例については、「Qt for Python の例とチュートリアル」を参照してください。
空のウィンドウプロジェクトを作成する
mainクラスのソースファイルを含むQt for Python アプリケーションを作成するには:
- 「File 」>「New Project 」の順に選択します。
- 「 Application (Qt for Python) >Empty Window >Choose を選択して、「Project Location 」ダイアログを開きます。
![[プロジェクトの場所] ダイアログ [プロジェクトの場所] ダイアログ](images/qtcreator-new-qt-for-python-app-widgets-project-location.webp)
- 「Name 」で、プロジェクト名を入力します。例:hello_world。
- 「Create in 」で、プロジェクトファイルのパスを入力します。例:
C:\Examples。 - 「Next 」(Windows および Linux)または「Continue 」(macOS)を選択して、「Define Class 」ダイアログを開きます。

- 「Class name 」で、クラス名として「MyWidget」を入力します。
- Base class で、 QWidget を基底クラスとして選択します。
注: [ Source file ] フィールドは 、クラス名に合わせて自動的に更新されます。
- 「Project file 」で、プロジェクトファイルの名前を入力します。
- 「Next 」または「Continue 」を選択して、「Define Project Details 」ダイアログを開きます。

- 「PySide version 」で、生成されるコードの PySide バージョンを選択します。
- 「Next 」または「Continue 」を選択して、「Kit Selection 」ダイアログを開きます。

- プロジェクトのビルド、デプロイ、実行に使用する Python キットを選択します。デフォルトでは、ソースディレクトリ内にプロジェクト用の仮想環境が作成されます。グローバルインタプリタを使用するには、Details でキットの Python と同じ名前のビルド構成を選択してください。
- 「Next 」または「Continue 」を選択します。
- プロジェクト設定を確認し、Finish (Windows および Linux)またはDone (macOS)を選択してプロジェクトを作成します。
ウィザードにより、以下のファイルが生成されます:
pyproject.toml、Python プロジェクト内のファイルやその他の設定が記載されています。mywidget.py:クラス用の定型コードが含まれています。requirements.txt:生成されたコードの PySide バージョンを格納するファイルです。このファイルを使用して、pip を通じて必要な PySide バージョンをインストールできます。
プロジェクト用に PySide6 をインストールする
「Edit 」モードで、「Install 」を選択し、プロジェクト用に PySide6 をセットアップします。

Qt Widgets のインポートを追加する
ウィザードは、`Qt Widgets ` モジュールで選択した `QApplication ` および基底クラスにアクセスできるよう、mywidget.py のソースファイルにインポート文を追加します(QWidget )。さらに、表示されるテキストの言語をランダムに選択するには `random ` および `QtCore ` を、UI要素を追加するには `QtWidgets ` をインポートする必要があります:
import sys import random from PySide6.QtWidgets import QApplication, QWidget from PySide6 import QtCore, QtWidgets
ウィジェットベースの UI を追加する
ウィザードは、指定された名前を持ち、指定された基底クラスを継承するメインクラスを追加します:
class MyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) ...
ボタン、ラベル、レイアウトウィジェットを追加して UI 要素を作成します:
... self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"] self.button = QtWidgets.QPushButton("Click me!") self.text = QtWidgets.QLabel("Hello World", alignment=QtCore.Qt.AlignCenter) self.layout = QtWidgets.QVBoxLayout(self) self.layout.addWidget(self.text) self.layout.addWidget(self.button) ...
シグナルとスロットの追加
次に、ランダム機能を実装するためにシグナルとスロットを追加します:
... self.button.clicked.connect(self.magic) @QtCore.Slot() def magic(self): self.text.setText(random.choice(self.hello))
main関数を追加する
ウィザードは、QApplication のインスタンスを作成するmain関数を追加します。Qt XMLはコマンドラインから引数を受け取ることができるため、QApplication オブジェクトに任意の引数を渡すことができます。通常、引数を渡す必要はなく、以下の方法を使用できます:
if __name__ == "__main__": app = QApplication(sys.argv) ...
MainWindowクラスのインスタンス化
ウィザードはMainWindow クラスをインスタンス化し、表示します:
... widget = MyWidget() widget.show() ...
Qtコードの実行
最後に、ウィザードはapp.exec() メソッドを呼び出し、Qtのメインループに入り、Qtコードの実行を開始します:
... sys.exit(app.exec())
アプリケーションの実行
「
」(Run )を選択して、アプリケーションを実行します。
関連項目: チュートリアル: `Qt Quick ` と Python、チュートリアル: `Qt Widgets ` UI と Python、および`Qt for Python ` アプリケーションの開発。
Copyright © The Qt Company Ltd. and other contributors. 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.