qtDesigner で形成された ui を python バージョンに変換して、追加のファイルなしで使用する方法はありますか?
私はこの UI に Maya を使用しています。この UI ファイルを読み取り可能な Python バージョンに変換して実装するのは本当に素晴らしいことです。
pyuic4
シェルでコマンドを
使用できます:pyuic4 input.ui -o output.py
If you are using windows, the PyQt4 folder is not in the path by default, you have to go to it before trying to run it:
c:\Python27\Lib\site-packages\PyQt4\something> pyuic4.exe full/path/to/input.ui -o full/path/to/output.py
or call it using its full path
full/path/to/my/files> c:\Python27\Lib\site-packages\PyQt4\something\pyuic4.exe input.ui -o output.py
PyQt にこのようなスクリプトがあるかどうかはわかりませんが、PySide をインストールすると、pythons スクリプト ディレクトリ "uic.py" にスクリプトがあります。このスクリプトを使用して、.ui ファイルを .py ファイルに変換できます。
python uic.py input.ui -o output.py -x
PyQt4 をすべてのサイド機能と共にインストールする必要はありません。必要なのは PyQt4 パッケージ自体だけです。パッケージ内では、モジュール pyuic.py ("C:\Python27\Lib\site-packages\PyQt4\uic") を使用して Ui ファイルを変換できます。
C:\test>python C:\Python27x64\Lib\site-packages\PyQt4\uic\pyuic.py -help
update python3: use pyuic5 -help
# add filepath 必要に応じて。pyuic バージョン = 4 または 5。
すべてのオプションが一覧表示されます。
Usage: pyuic4 [options] <ui-file>
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-p, --preview show a preview of the UI instead of generating code
-o FILE, --output=FILE
write generated code to FILE instead of stdout
-x, --execute generate extra code to test and display the class
-d, --debug show debug output
-i N, --indent=N set indent width to N spaces, tab if N is 0 [default:
4]
-w, --pyqt3-wrapper generate a PyQt v3 style wrapper
Code generation options:
--from-imports generate imports relative to '.'
--resource-suffix=SUFFIX
append SUFFIX to the basename of resource files
[default: _rc]
したがって、コマンドは次のようになります。
C:\test>python C:\Python27x64\Lib\site-packages\PyQt4\uic\pyuic.py test_dialog.ui -o test.py -x
ファイルへの完全なファイル パスを使用して変換することもできます。
それでも変換したいのはなぜですか?私は、デザイナーでウィジェットを作成し、*.ui ファイルを介して実装することを好みます。これにより、後で編集するのがはるかに快適になります。独自のウィジェット プラグインを作成し、それらを Qt Designer にフル アクセスでロードすることもできます。UI をハードコーディングしても、あまり柔軟にはなりません。
Maya だけでなく、Max、Nuke などでも多くの ui を再利用しています。ソフトウェア固有の何かを変更する必要がある場合は、よりグローバルなポイントからクラスを (親の ui ファイルで) 継承するようにしてください。調整する必要があるメソッドを表示してパッチまたはオーバーライドします。これにより、多くの作業時間を節約できます。他にご不明な点がございましたら、お気軽にお問い合わせください。
私は最近同じ問題に遭遇しました。私が実行したファイルファインダーを使用して pyuic4 ファイルへの正しいパスを見つけた後:
C:\Users\ricckli.qgis2\python\plugins\qgis2leaf>C:\OSGeo4W64\bin\pyuic4 -o ui_q gis2leaf.py ui_qgis2leaf.ui
ご覧のとおり、私のuiファイルはこのフォルダーに配置されました...
QT Creator は個別にインストールされ、OSGEO4W インストーラーで pyuic4 ファイルがそこに配置されました。