チュートリアル:Qt Widgets と Python
まず、Qt for Python アプリケーションプロジェクトを作成します。次に、Qt ウィジェットを使ってHello Worldというテキストをいくつかの言語で表示する小さなアプリケーションを開発するために、定型コードを編集します。

Qt for Python アプリケーションの作成例については、Qt for Python Examples and Tutorials を参照してください。
空のウィンドウプロジェクトを作成する
メインクラスのソースファイルを持つQt for Python アプリケーションを作成するには:
- File >New Project に移動します。
- を選択します。 Application (Qt for Python)>Empty Window >Choose を選択して、Project Location ダイアログを開きます。

- 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.tomlPythonプロジェクト内のファイルとその他の設定のリストです。mywidget.pyクラス用の定型コードがあります。requirements.txt生成されたコードの PySide バージョンが格納されています。このファイルを使用して、pipを使用して必要なPySideバージョンをインストールできます。
プロジェクトにPySide6をインストールする
Edit モードで、Install を選択して、プロジェクト用に PySide6 をセットアップします。

Qt Widgets インポートの追加
ウィザードは、QApplication とQt Widgets モジュールで選択した基本クラスQWidget にアクセスするためのインポートをmywidget.py ソースファイルに追加します。さらに、表示されるテキストの言語をランダムに選択するための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))メイン関数の追加
ウィザードはメイン関数を追加し、QApplication インスタンスを作成します。Qtはコマンドラインから引数を受け取ることができるので、QApplication オブジェクトに任意の引数を渡すことができます。通常は、引数を渡す必要はなく、次のような方法を使うことができます:
if __name__ == "__main__":
app = QApplication(sys.argv)
...MainWindow クラスのインスタンス化
ウィザードはMainWindow クラスをインスタンス化して表示します:
... widget = MyWidget() widget.show() ...
Qtコードの実行
最後に、ウィザードはapp.exec() メソッドを呼び出して Qt のメインループに入り、Qt コードの実行を開始します:
... sys.exit(app.exec())
アプリケーションの実行
アプリケーションを実行するには、
(Run) を選択してください。
Tutorial:Qt Quick and Python,Tutorial: Qt Widgets UI と Python、およびDevelopQt for Python Applications も参照してください。
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.