サイドバーの「Django ドキュメント検索」というプレースホルダの入った検索では、Django ドキュメント (Django 2.1) の公式サイト内を検索できます
PySide2 の UI デザインを QtDesigner で行う

目次

はじめに

Qt では QtCreator という IDE を使って UI デザインができるが、PySide でも QtDesigner を使って UI デザインを行う事ができる。

QtDesigner のインストール

QtDesigner は、下記のようにしてインストールできる。

Windows の場合

Windows の場合、PySide2 をインストールした際に designer.exe の名前ですでにインストールされている。例えば、仮想環境 env に PySide2 をインストールしているのであれば、env\Lib\site-packages\PySide2\desinger.exe が QtDesigner となっている。

Ubuntu の場合

Ubuntu の場合、PySide2 をインストールしただけではインストールされていないので、下記のようにしてインストールする。

$ sudo apt install qttools5-dev-tools

これでメニューから「Qt デザイナ」を起動できる。下記は Ubuntu MATE の例。

UI デザインを行う

QtDesigner を起動して UI のデザインをする。QtDesigner 自体は適当に触っていれば大体検討つくはず。ここでは、単純にラベルとボタンを一つずつ張り付けた MinWindow を作成した。

デザインが出来上がったら、「ファイル」メニューから保存すると .ui ファイルが作成される。(ここでは、main_sample.ui という名前とする。)

UI をロードするコード

Python コードからこの .ui ファイルをロードして使用すれば良い。下記のようなコードで MainWindow をロードして表示できる。

import sys
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication
from PySide2.QtCore import QFile

if __name__ == "__main__":
    app = QApplication(sys.argv)

    # ui ファイルを開く
    file = QFile("main_sample.ui")
    file.open(QFile.ReadOnly)

    # ローダを使って ui ファイルをロードする
    loader = QUiLoader()
    window = loader.load(file)

    window.show()

ローダを使って ui ファイルをロードするだけなので難しくは無い。このプログラムを実行すると、下記のように main_sample.ui で定義したウィンドウが表示される。

UI 定義されたオブジェクトにコードからアクセスする

ui ファイルで定義したオブジェクトにアクセスするには、ローダから取得したオブジェクトからアクセスできる。上記ローダの部分を下記のように書き換えてみる。

   loader = QUiLoader()
   window = loader.load(file)
   window.label.setText("Hello Japan.")

これを実行すると、ui デザインの "Hello World!" が "Hello Japan." に書き換わっているのを確認できる。

参考

Qt for Python UiFiles

 

低価格なのに高速・多機能・高セキュリティ 月額400円(税別)から最大容量100GB WordPress専用高速サーバー Z.com WP
おすすめの記事