PySide を使ってカスタムウィジェットを作成する際、.ui ファイルを利用することはよくあるかと思います。しかしその中で、PySide6 の QUiLoader が正しく動作しない不具合が報告されています。

from PySide6 import QtWidgets
from PySide6.QtUiTools import QUiLoader
import sys

app = QtWidgets.QApplication(sys.argv)

print("Before loader")
loader = QtUiTools.QUiLoader()
print("After loader")

QtWidgets.QApplicationが読み込まれた後、正しく動作しないという問題で、上のコードを実行するとAfter loaderがプリントされず、loader = QtUiTools.QUiLoader()でハングしてしまいます。これを解決するのはいたって簡単でQtWidgets.QApplicationの前にQUiLoaderを定義することで解決します。

from PySide6 import QtWidgets
from PySide6.QtUiTools import QUiLoader
import sys

loader = QtUiTools.QUiLoader()
app = QtWidgets.QApplication(sys.argv)

報告にあったバージョンは6.6、 6.7のようですがローカルで確認すると6.8.0では同様に動かず、6.8.1からは動くようになっているので解決しているようですがリリースノートには記載がなかったので何かしらの要因で動かなかったのかもしれません。

参照元

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です