Невозможно запустить Qt uic
Я установил Qt designer 4.8.2, Pyside и Python 3.3. Когда я создаю форму с конструктором Qt, я не могу увидеть код при нажатии на код просмотра. Сообщение об ошибке:"Невозможно запустить C:\Qt\4.8.2\bin\uic". У меня есть pyuic в C:\Python33\Lib\site-packages\PyQt4\uic. Пожалуйста помоги.
7 ответов
Хотя вы, безусловно, можете использовать Qt Designer для создания пользовательских интерфейсов для PySide / PyQt, вы должны знать, что это в первую очередь инструмент C++ - он не имеет встроенной поддержки Python. Таким образом, команда "View Code...", на которую вы ссылаетесь, создает только код C++, который, вероятно, не очень вам пригодится, если вы собираетесь использовать PySide или PyQt.
Файлы пользовательского интерфейса Qt Designer представлены в формате XML (обычно они имеют расширение.ui).
Чтобы использовать их с Python, есть в основном два варианта:
- Загрузите файлы.ui прямо в ваше приложение.
- Преобразуйте файлы.ui в модули Python с помощью внешнего инструмента.
Есть несколько различий между PySide и PyQt в том, как эти две опции реализованы.
Для PyQt полную документацию по обоим опциям можно найти здесь.
Для PySide документацию по варианту 1 можно найти здесь - но, похоже, что нет никакой документации по варианту 2. Однако, внешний инструмент для PySide (который называется pyside-uic
) работает очень похоже на один для PyQt (который называется pyuic4
).
Если вам нужна более общая информация о том, как начать использовать Qt с Python, попробуйте PySide Wiki или PyQt Wiki.
Просто создайте каталог, в котором он ищет файл uic.exe, и скопируйте существующий файл uic.exe в этот каталог.
Мой пример: когда я щелкнул View Code, он показывает ошибку, запрашивающую файл uic.exe по пути C:\python374\Lib\site-packages\pyqt5_tools\Qt\bin\bin
Но я обнаружил, что файл uicexe находится в папке C: \ python374 \ Lib \ site-packages \ pyqt5_tools \ Qt \ bin. Поэтому я создал еще одну папку bin и скопировал в эту папку файл uic.exe. Это решило мою проблему.
Создайте внутри папки папку с именем bin и переместите exe внутрь uic.exe. Он показывает код, когда щелкает код просмотра в конструкторе QT.
Если вы хотите сгенерировать код Python, вы можете сделать это из консоли. Итак, если вы сохранили ваш файл из программы как "без названия", по умолчанию, запустите это:
pyuic5 -m untitled.ui -o untitled.py
Убедитесь, что в вашем рабочем каталоге находится файл "untitled.ui". Затем он будет плевать Untitled.py в том же месте.
Делать
Форма -> Посмотреть код
работать непосредственно из Qt Designer, используя Qt4 или Qt5, вы можете просто создать символическую ссылку, откуда смотрит Qt Designer, указывая, где находится ваш исполняемый файл pyuic5.exe. На вашем примере это будет:
mklink /H "C:\Qt\4.8.2\bin\uic.exe" "C:\Python33\Lib\site-packages\PyQt4\pyuic4.exe"
Который:
mklink /H "Path\to\uic.exe\file\Qt\designer\is\looking\for" "Path\to\actual\location\of\pyuic4.exe\or\pyuic5.exe\file"
Убедитесь, что папка, в которой будет находиться "C:\Qt\4.8.2\bin\uic.exe", очевидно, существует.
python -c "import os; import PySide6; src = PySide6.__path__[0]; dst = src + '/bin'; os.mkdir(dst) if not os.path.exists(dst) else None; os.symlink(src + '/uic.exe', dst + '/uic.exe')"
У меня было такое же сообщение об ошибке\предупреждение в Windows с
pyside6-designer
, я просто запускаю указанную выше строку от имени администратора, и теперь все работает как положено (строка просто создает ссылку на
uic.exe
внутри
bin
-папка под
Pyside6
папку модуля) .
Для компьютеров Linux
Если кто-то все еще сталкивается с этой проблемой, и вы используете Linux.
Вы можете найти нужный файл в
venv-path/python3.x/site-packages/PySide2/uic
Скопируйте этот файл и создайте новую папку
bin
внутри папки Qt.
venv-path/python3.x/site-packages/PySide2/Qt/bin
теперь поместите файл туда, чтобы последний
uic
путь:
venv-path/python3.x/site-packages/PySide2/Qt/bin/uic
Примечание ::
- venv-path - это путь к виртуальной среде Python.
- 3.x - это подходящая версия Python в виртуальной среде. (В моем случае это 3.8)