Как скомпилировать uic с PySide6

Я хочу скомпилировать uic в PySide6, но не могу установить инструмент pyside6-uic. Где я могу установить pyside6-uic? Я загрузил PySide6, но команда pyside6-uic не работает.

Здесь в заголовке есть ссылка:

https://doc.qt.io/qtforpython/tutorials/basictutorial/uifiles.html#using-ui-files-from-designer-or-qtcreator-with-quiloader-and-pyside6-uic

5 ответов

Шаг 1. Если вы установили PySide6

         a. In a venv then go to your venv's folder.
   b. Globally then go to your python installation folder.

Шаг 2. Перейдите в Lib , затем в site-packages , затем в PySide6 .

Шаг 3. Скопируйте uic.exe (или uic , если расширение файла скрыто), создайте папку с именем bin и вставьте в нее то, что вы скопировали.

Чтобы скомпилировать файлы пользовательского интерфейса из:

QtDesigner: в верхнем меню выберите «Форма» -> «Просмотр кода Python...», затем щелкните значок сохранения (дискета) в открывшемся окне.

Командная строка: pyside6-uic.exe mainwindow.ui > ui_mainwindow.py

PowerShell: pyside6-uic.exe mainwindow.ui -o ui_mainwindow.py

Инструмент должен быть установлен автоматически при установке пакета Python.

Проверить, если uicнаходится в ПУТИ

При использовании в документации Qt (здесьстраница документа) указано, что:

Внутренний процесс зависит от того, находится ли uic в PATH. Оболочка pyside6-uic использует поставляемый uic, который находится в site-packages/PySide6/uic, поэтому PATH необходимо обновить, чтобы использовать его, если в системе нет uic.

Но даже тогда я получил следующую ошибку:

      Cannot run 'pyside6-uic':  "execvp: No such file or directory"  -  
Exit status QProcess::NormalExit  ( 255 )
Check if 'pyside6-uic' is in PATH 

Для меня не находился в site-packages/PySide6/uic. При переустановке модуля с pip, я заметил это сообщение:

        WARNING: The scripts pyside6-assistant, pyside6-designer, pyside6-genpyi, 
pyside6-linguist, pyside6-lrelease, pyside6-lupdate, pyside6-rcc and pyside6-uic are 
installed in '/Users/<user>/Library/Python/3.8/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, 
use --no-warn-script-location.

Поэтому убедитесь, что вы добавили правильный каталог в свой $PATHпеременная. Как только это будет сделано, вы сможете использовать pyside6-uicкоманда для создания класса Python из файла пользовательского интерфейса:

      pyside6-uic mainwindow.ui > ui_mainwindow.py

Загрузка .ui из кода

Вы также можете загрузить .uiфайл из вашего кода , используя либо:

  1. loadUiType():

Эта функция создает и загружает файл .ui во время выполнения и возвращает кортеж, содержащий ссылку на класс Python и базовый класс.

  1. или же QUiLoader( страница документа):

позволяет автономным приложениям динамически создавать пользовательские интерфейсы во время выполнения, используя информацию, хранящуюся в файлах пользовательского интерфейса или указанную в путях к плагинам.

      from PySide6.QtUiTools import QUiLoader

ui_file = QFile("mainwindow.ui")
ui_file.open(QFile.ReadOnly)
loader = QUiLoader()
window = loader.load(ui_file)
window.show()

Вообще говоря, используйте абсолютные пути для доступа к вашим файлам пользовательского интерфейса. Относительные пути подвержены ошибкам.

Вы можете сделать это следующим образом.

Если pyside6 установлен глобально

      uic -g python form.ui > ui_form.py

Дополнительную информацию можно найти по адресу: https://doc.qt.io/qt-6/designer-using-a-ui-file-python.html .

Я мог бы решить эту проблему, чтобы добавить этот путь к моей переменной%PATH% в Windows.

      C:\Users\<YOUR_USER_PATH_NAME>\AppData\Roaming\Python\Python311\Scripts

Если вы используете виртуальную среду, при установке pyside6 с помощью pip в виртуальной среде есть папка с именем Scripts, в которой есть инструмент pyside6-uic.exe.

если вы установили pyside6 глобально в своей системе и используете код Visual Studio, вы можете использовать расширение PySide2-vsc, тогда после установки вы можете перейти в настройки> настройки и выполнить поиск в настройках расширения PySide2-vsc, затем найти «Команда для компиляции файл .ui в python ". Затем вы можете использовать эту функцию, щелкнув правой кнопкой мыши файлы .ui.

Другие вопросы по тегам