web-dev-qa-db-ja.com

pyQt UIをpythonに変換します

QtDesignerで作成されたUIをpythonバージョンに変換して、余分なファイルなしで使用する方法はありますか?

このUIにMayaを使用していますが、このUIファイルを読み取り可能なpythonバージョンに変換して実装するのは本当に素晴らしいことです。

34

シェルでpyuic4コマンドを使用できます:pyuic4 input.ui -o output.py

48
Katsu

Windowsを使用している場合、PyQt4フォルダーはデフォルトではパスにありません。実行する前にそのフォルダーに移動する必要があります。

c:\Python27\Lib\site-packages\PyQt4\something> pyuic4.exe full/path/to/input.ui -o full/path/to/output.py

または、フルパスを使用して呼び出します

full/path/to/my/files> c:\Python27\Lib\site-packages\PyQt4\something\pyuic4.exe input.ui -o output.py
10
hoylpraal

Pyqt5には次を使用できます

pyuic5 xyz.ui > xyz.py 

または

pyuic5 xyz.ui -o xyz.py
9
Awinash jaiswal

.uiを.pyに変換する最も簡単な方法は、ターミナルからです:

pyuic4 -x input.ui -o output.py

Pyqt4-dev-toolsがインストールされていることを確認してください。

4
chris mahn

PyQtにこのようなスクリプトがあるかどうかはわかりませんが、PySideをインストールした後、pythonsスクリプトディレクトリ「uic.py」にスクリプトがあります。このスクリプトを使用して、.uiファイルを.pyファイルに変換できます。

python uic.py input.ui -o output.py -x
4
Pouya

質問はすでに回答されていますが、開発中にショートカットを探している場合、pythonスクリプトの先頭にこれを含めると、時間を節約できますが、実際に変換を行う必要があることを忘れることができます。 。

import os #Used in Testing Script
os.system("pyuic4 -o outputFile.py inpuiFile.ui")
3
aoh

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

すべてのオプションがリストされます:

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ファイルを使用して)クラスを継承してください。調整する必要があるメソッドを表示してパッチを適用するか、オーバーライドします。それは多くの作業時間を節約します。さらに質問がある場合はお知らせください。

2
MagSec

python 3.xでPyQt5を使用しているユーザー向けの更新:

  1. ターミナルを開きます(例:Powershell、cmdなど)
  2. .uiファイルがあるフォルダーにcdします。
  3. タイプ:"C:\python\Lib\site-packages\PyQt5\pyuic5.bat" -x Trial.ui -o trial_gui.py PyQt5がパス変数でない場合。引用符で囲まれたパス ""は、pyuic5.batファイルの場所を表します。

これは動作するはずです!

1
Rick M.

Ubuntuの場合、次のコマンドで機能します。個々のファイルに、ファイルを個別に実行するためのメインメソッドを含める場合は、テスト目的で、

pyuic5 filename.ui -o filename.py -x

ファイルにメインメソッドがありません。個別に実行できません...試してください

pyuic5 filename.ui -o filename.py

考えてみて、私はPyQT5を使用しています。

0
Kandy

最近、同じ問題に遭遇しました。私が実行したファイルファインダーを使用して、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ファイルをそこに配置しました

0
Riccardo