Возникли проблемы с получением PyQt5 + venv + qt5ct для хорошей игры - PullRequest
1 голос
/ 03 ноября 2019

Я работаю над небольшим приложением PyQT5, которое я хотел бы запустить в виртуальной среде. Теперь, создав venv и установив все необходимые пакеты в venv с помощью pip, приложение работает и в целом работает нормально.

Но у меня возникли проблемы с тематикой. Теперь я использую qt5ct для управления своими темами QT на своем компьютере, но, к сожалению, кажется, что это не происходит в рамках venv. Если я запускаю приложение за пределами venv, первая строка, выведенная в консоли, будет qt5ct: using qt5ct plugin, и приложение будет стилизовано в соответствии с моим выбором в qt5ct. Однако при работе в venv у меня нет такой строки, и у всех есть стиль по умолчанию.

Теперь я напечатал os.environ['QT_QPA_PLATFORMTHEME'] из виртуальной среды и проверил, что он установлен в qt5ct, как должнобыть. Кажется, что qt5ct просто не получает экспозиции, я попытался создать символическую ссылку на исполняемый файл qt5ct в моей папке venv bin, но это ничего не помогло.

Кто-нибудь знает, как использовать настройку qt5ct дляполучить приложение к приложению pyqt5, запущенному в python3-venv?

1 Ответ

1 голос
/ 03 ноября 2019

При компиляции qt5ct генерируются 3 файла:

  • qt5ct
  • libqt5ct.so:
  • libqt5ct-style.so

Первое - это приложение, которое позволяет вам настраивать qt5ct, а остальные являются плагинами. Чтобы qt5ct работал с PyQt5, установленным из pypi, вы должны скопировать libqt5ct.so и libqt5ct-style.so в:

  • / path / of / your_venv / lib / python3.7 / site-packages /PyQt5 / Qt / plugins / platformthemes / libqt5ct.so
  • / path / of / your_venv / lib / python3.7 / site-packages / PyQt5 / Qt / plugins / styles / libqt5ct-style.so

соответственно.

Если вы установили qt5ct с помощью pacman, то вы должны выполнить следующие шаги:

$ cp /usr/lib/qt/plugins/platformthemes/libqt5ct.so /path/of/your_venv/lib/python3.7/site-packages/PyQt5/Qt/plugins/platformthemes/
$ mkdir /path/of/your_venv/lib/python3.7/site-packages/PyQt5/Qt/plugins/styles/
$ cp /usr/lib/qt/plugins/styles/libqt5ct-style.so /path/of/your_venv/lib/python3.7/site-packages/PyQt5/Qt/plugins/styles/

Где /path/of/your_venv - путь вашего venv.

...