Qt for Python/ru
Qt for Python
Цель проекта Qt for Python - предоставить полный порт модуля PySide для Qt 5. Разработка началась на GitHub в мае 2015. Проект сумел портировать PySide для Qt 5.3, 5.4 и 5.5. В апреле 2016 года The Qt Company приняла решение о полной поддержке порта (см. подробности ).
Модуль был выпущен в середине июня 2018 года как Technical Preview (с поддержкой Qt 5.11), и в декабре 2018 года он был официально выпущен для Qt 5.12 без тега Technical Preview tag.
Эта вики-страница отслеживает прогресс разработки проекта Qt for Python и предоставляет сопутствующую дополнительную информацию.
Qt for Python доступен под лицензией LGPLv3/GPLv2 и commercial license для следующих платформ:
Linux | macOS | Windows | ||||
---|---|---|---|---|---|---|
32bit | 64bit | 32bit | 64bit | 32bit | 64bit | |
Python 2.7 | * | * | ** | ** | ||
Python 3.5+ | * | * | *** | *** |
*: No Qt release.
**: Проблема MSVC с Python 2.7 и Qt.
***: 5.14 не будет работать на Windows с Python 3.8.0, пожалуйста, используйте Python 3.8.1 или выше.
Установите PySide2 через pip, запустив: pip install PySide2
Как это выглядит?
import sys
from PySide2.QtWidgets import QApplication, QLabel
if __name__ == "__main__":
app = QApplication(sys.argv)
label = QLabel("Hello World")
label.show()
sys.exit(app.exec_())
Больше примеров можно найти в репозитории проекта внутри каталога examples.
Начало работы
- Обратитесь к официальной документации через wiki для получения руководств по началу работы, урокам и многому другому!
- Начало работы | wiki: инструкции по загрузке, сборке и установке.
- Документация по портированию | wiki: перенос существующего приложения Qt/C++ в Qt/Python.
- Уроки | wiki: начните разрабатывать PySide2 приложения.
- Shiboken | wiki: Общая информация о генераторе привязки (binding generator) Python.
- Разработка: Начало работы: руководство для начала внесения вклада в проект.
- Соображения и известные проблемы
- Сообщения об ошибках: сообщите о любой проблеме, связанной с PySide2 или Shiboken2.
- Git repository (Code review) (5.15 branch - текущая ветвь PySide2) и PySide2 open patches
Сообщество
- Telegram группа: Qt for Python
- Официальный IRC канал на Freenode #qt-pyside - вы можете присоединиться через Webchat
- Официальный список рассылки (Mailing list)
- Форум Qt: подкатегория Qt for Python
- Keybase:
- keybase.io/team/pyside
- keybase.io/team/theqtcompany (subteam theqtcompany.pyside)
- Gitter: gitter.im/PySide/pyside2 (включая бота, который соединяет с IRC)
- Matrix/Riot: #qt-pyside:matrix.org (Qt for Python)
Статус разработки
- Development Notes by date: сводка прогресса разработки по датам.
- Qt for Python Development Progress Notes самое актуальное представление прогресса можно найти в Jira: Нерешённые проблемы и Все проблемы (включая решённые). Вторая ссылка полезна для отслеживания прогресса Backlog. Лучший способ добиться этого - отсортировать список по столбцу "Обновлено". Более крупные элементы backlog/feature хранятся в виде "User Stories" в Jira.
- Missing PySide2 bindings: список текущих отсутствующих привязок.
Вопросы и ответы (FAQ)
- В: PySide? Qt for Python? как же это называется?
- О: Название проекта - Qt for Python, а название модуля - PySide2.
- В: Почему PySide2, а не просто PySide?
- О: Поскольку PySide был разработан для Qt4, когда был сделан порт для поддержки Qt5, название было изменено на PySide2, чтобы подразумевать, что это более новая версия.
- В: где я могу найти информацию о старом проекте PySide?
- О: старая вики-страница проекта доступна на PySide, но проект устарел и нет никакой официальной поддержки для него. Мы настоятельно рекомендуем не использовать его.
- В: мой проект использует PySide, насколько трудно было бы адаптировать его к PySide2?
- О: изменения такие же , как между Qt4 и Qt5, и для пользователей PySide это в основном означает адаптирование импортов, так как многие классы были перемещены из QtGui в QtWidgets.
- Qt 5 имеет высокую совместимость с Qt 4. Разработчики Qt 4 приложений могут легко перейти на Qt 5 с сохранением функциональности и постепенно разрабатывать новые вещи, используя все замечательные возможности, которые предоставляет Qt 5.
- В: Поддерживает ли PySide2 разработку / развертывание на Android и iOS?
- О: На данный момент поддержка мобильных платформ отсутствует. Этот вопрос будет рассматриваться в будущем.
- В: Есть ли у PySide2 поддержка embedded Linux (Raspberry Pi, i.MX6 и так далее)?
- О: Сейчас нет. Этот вопрос будет рассматриваться в будущем.
- В: Здесь три wheels (pyside2, shiboken2, и shiboken2_generator) в чем разница между ними?
- О: До официального релиза все было в одном большом wheel, но имело смысл разделить проекты на три разных wheels:
- pyside2: содержит все модули PySide2 для всех библиотек Qt. Также зависит от модуля shiboken2.
- shiboken2: содержит модуль shiboken2 с вспомогательными функциями для PySide2.
- shiboken2_generator: содержит generator binary, который может работать с C++ проектом и системой типов для создания Python bindings. Учтите, что если вы хотите создать bindings для Qt/C++ проекта, связка с Qt shared libraries будет отсутствовать, и вам нужно будет сделать это вручную. Мы рекомендуем собрать PySide2 с нуля, чтобы все было правильно связано.
- О: До официального релиза все было в одном большом wheel, но имело смысл разделить проекты на три разных wheels:
- В: Почему shiboken2_generator не устанавливается автоматически?
- О: Нет необходимости устанавливать его для использования PySide2. Пакет является результатом процесса разделения wheel. Для использования генератора рекомендуется собрать его с нуля, чтобы иметь правильную Qt-компоновку.
Внесение вклада в Qt for Python Wiki
Эта Wiki - место сообщества, где вы можете легко внести свой вклад, и которое может содержать быстро меняющуюся информацию. Пожалуйста, поместите любые вики-страницы, связанные с Qt for Python в категорию "QtForPython", добавив следующий текст в верхнюю часть страницы:
[[Category:Qt for Python]]
При создании новой страницы Вики, пожалуйста, начните имя с префикса "Qt_for_Python/", таким образом все имена страниц Вики будут иметь одинаковую структуру и навигационные цепочки сгенерируются для облегчения навигации.