PySide2(5.6.2)のpyside2-uic.exeでButtonGroupのあるUIをコンバートできない問題の対処法

前のエントリに続いてビルドしたPySide2で発生する問題の対処法を紹介します。

pyside2-uic.exeでButtonGroupのあるUIをコンバートできない

ビルドしたものをインストールしてこれまで作成したUIをコンバートしたところ、エラーで止まるものがありました。通るものとエラーになるものを比較したところ、エラーになるものはButtonGroupが使われていました。試しに.uiファイルからButtonGroupに関する部分を削除してみたところ、エラーが発生せずにコンバートできました。

この状況を踏まえてバグ情報を探したところ、以下を見つけました。

https://bugreports.qt.io/browse/PYSIDE-658

ビンゴっぽいですね。

上記のページにあるように、Pythonインストールパス\site-packages\pyside2uicフォルダにあるuiparser.pyを以下のように修正します。

画像で選択反転されている部分を追加する

元のコードではgetAttributeしたデータのstringプロパティを取得しているようですが、getAttributeでそもそも文字列(strクラスのデータ)が帰ってきている場合、それをそのまま代入するようにコードを追加すれば良いようです。

この修正を行ったところ、ButtonGroupがあってもpyside2-uic.exeでエラーにならず、コンバートが通るようになりました。

この辺の修正も最初に試みたときに修正して使用していたようで、今回新たにビルドしなおしてインストールしたら問題がいろいろ発覚しました。良い機会なので修正方法を記事に残しておきます。