Как скомпилировать uic с PySide6
Я хочу скомпилировать uic в PySide6, но не могу установить инструмент pyside6-uic. Где я могу установить pyside6-uic? Я загрузил PySide6, но команда 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
файл из вашего кода , используя либо:
-
loadUiType
():
Эта функция создает и загружает файл .ui во время выполнения и возвращает кортеж, содержащий ссылку на класс Python и базовый класс.
- или же
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.