Pyqt install windows: python — How to install PyQt5 on Windows?
Как установить PyQt5 в Windows?
Вопрос:
Когда я пытаюсь установить PyQt5 на Windows с помощью команды
python configure.py
Я получаю эту ошибку:
Error: Make sure you have a working Qt qmake on your PATH.
Я получил pyQt5 от PyQt5 Скачать.
Как я могу установить PyQt5?
Обновить:
Я установил Qt 5.0.2 for Windows 64-bit (VS 2012, 500 MB)
со страницы загрузки Qt, и теперь у меня появляется эта ошибка:
Querying qmake about your Qt installation... Determining the details of your Qt installation... Error: Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.
И когда я выполняю команду python configure.py --verbose
:
Querying qmake about your Qt installation... Determining the details of your Qt installation... C:\Qt\Qt5.0.2\5.0.2\msvc2012_64\bin\qmake.exe -spec win32-msvc2008 -o qtdetail.m k qtdetail.pro nmake -f qtdetail.mk release 'nmake' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes. Error: Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.
Я добавил C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
(содержит nmake.exe
) в PATH и получил эту ошибку:
Querying qmake about your Qt installation... Determining the details of your Qt installation... C:\Qt\Qt5.0.2\5.0.2\msvc2012_64\bin\qmake.exe -spec win32-msvc2008 -o qtdetail.mk qtdetail.pro nmake -f qtdetail.mk release Microsoft (R) Program Maintenance Utility Version 11.00.50727.1 Copyright (C) Microsoft Corporation. All rights reserved. "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\nmake.exe" -f qtdetail.mk.Release Microsoft (R) Program Maintenance Utility Version 11.00.50727.1 Copyright (C) Microsoft Corporation. All rights reserved. cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MD -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_NO_DEBUG -DQT_CORE_LIB -I"..\..\..\..\..\..\..\Qt\Qt5.0.2\5.0.2\msvc2012_64\include" -I"..\..\..\..\..\..\..\Qt\Qt5.0.2\5.0.2\msvc2012_64\include\QtCore" -I"release" -I"..\..\..\..\..\..\..\Qt\Qt5.0.2\5.0.2\msvc2012_64\mkspecs\win32-msvc2008" -Forelease\ @C:\Users\Victor\AppData\Local\Temp\nm68EA.tmp NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.EXE"' : return code '0xc0000135' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\nmake.exe"' : return code '0x2' Stop.
Лучший ответ:
Самый простой способ установки PyQt — просто использовать установщик (ссылка в вашем ответе, шаг № 5). Если вы установите python 3.3, установщик автоматически добавит все дополнения PyQt5 к этой установке python. Вам не нужно выполнять компиляцию (ни один из: nmake, nmake install, python configure).
Все варианты сборки доступны, если вам нужна пользовательская установка (например, с использованием другой версии python, где нет установщика, предоставляемого вычислениями на берегу реки).
Если вам нужно скомпилировать собственную версию PyQt5, шаги (как вы нашли) здесь, но предположим, что у вас есть python и установлен компилятор и на вашем пути. Установленные и на вашем пути были там, где вы столкнулись с проблемами. Я бы рекомендовал использовать версию установщика, но сначала вам нужно установить python 3.3.
Ответ №1
В основном я использую следующую команду в разделе cmd
pip install pyqt5
И он работает без проблем!
Ответ №2
Сначала попробуйте это в окне Windows cmd:
pip3 install pyqt5
Если это будет успешным, оно будет выглядеть примерно так:
C:\Windows\System32>pip3 install pyqt5
Collecting pyqt5
Downloading PyQt5-5.9-5.9.1-cp35.cp36.cp37-none-win_amd64.whl (77.2MB)
100% |################################| 77.2MB 13kB/s
Collecting sip<4.20,>=4.19.3 (from pyqt5)
Downloading sip-4.19.3-cp35-none-win_amd64.whl (49kB)
100% |################################| 51kB 984kB/s
Installing collected packages: sip, pyqt5
Successfully installed pyqt5-5.9 sip-4.19.3
Если это не сработало, вы можете попробовать эту ссылку из SourceForge.
Инсталляторы PyQt5.exe для Windows
Как найти установщика, который подходит именно вам?
Сначала определите, какая у вас версия Python и есть ли у вас 32-разрядный или 64-разрядный Python.
Затем откройте один из каталогов. Я на Python 3.5 64-бит, поэтому я ищу .exe с этими спецификациями. Когда вы открываете каталог в SourceForge, вы увидите некоторые каталоги с ТОЛЬКО .zip или .tar.gz. Это не то, что вы ищете. Хорошая индикация того, какой каталог вы должны щелкнуть, указывается столбцом «Загрузки/Неделя».
В моем случае я открою каталог PyQt-5.6.
Здесь мы замечаем некоторые .exe файлы:
PyQt-5.6
|_PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x32-2.exe
|_PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe
|_PyQt5_gpl-5.6.zip
|_PyQt5_gpl-5.6.tar.gz
Я знаю, что это Python 3.5 на Py3.5
в имени файла. Я также ищу 64-битную версию, поэтому я загружу PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe
. Окончательный ответ!
Примечание. Если вы попытаетесь установить версию, несовместимую с вашей системой, диалоговое окно появится сразу после запуска .exe. Это указание на то, что вы выбрали неверный. Я не пытаюсь звучать как dbag… Я делал это несколько раз!
Чтобы проверить успешную установку, в интерпретаторе Python попробуйте импортировать:
from PyQt5 import QtCore, QtGui, QtWidgets
Ответ №3
Я нашел частичное решение…
Шаги по установке pyQt5 (с VS 2012) в Windows:
1) Установите двоичный файл Qt 5.0.2 for Windows 64-bit (VS 2012, 500 MB)
из здесь.
2) Получите sip-4.14.7
(моментальный снимок разработки) из здесь.
3) Извлеките файл и откройте Developer Command Prompt for VS2012
.
4) Выполните эти команды (в папке sip):
python configure.py
nmake
nmake install
5) Получите pyQt5
из здесь.
6) Извлеките файл и откройте VS2012 x64 Native Tools Command Prompt
.
7) Выполните следующие команды:
python configure.py
UPDATE: При выполнении этих команд ниже не работает:
nmake
nmake install
Решение: я попытаюсь использовать pyQt4 с Qt5… потому что pyQt5 находится в разработке и еще не имеет поддержки/документации.
Ответ №4
Один из самых (возможно, самый) самый простой способ установки пакетов сайта, таких как PyQt5, — это установка одной из версий Anaconda. Вы можете установить многие пакеты сайтов, установив их. Список доступных пакетов сайтов с версиями Anaconda можно проверить здесь.
- Dowload Anaconda3 или Anaconda2
- Установите его.
- Добавьте путь PyQt5 в установку Anaconda к переменным System Environment.
Например:
PATH: ....; C:\Anaconda3\Lib\site-packages\PyQt5; ...
- Он готов к использованию.
Ответ №5
Я новичок в Python и PyQt5. Я пытался использовать pip, но у меня были проблемы с ним на компьютере с Windows. Если у вас версия Python 3.4 или выше, pip установлен и готов к использованию следующим образом:
python -m pip install pyqt5
Это, конечно, при условии, что путь к исполняемому файлу Python находится в переменной среды PATH. В противном случае укажите полный путь к исполняемому файлу Python (вы можете указать, where python
в командном окне, чтобы найти его), например:
C:\users\userName\AppData\Local\Programs\Python\Python34\python.exe -m pip install pyqt5
Ответ №6
Другая команда под cmd
:
easy_install pyqt5
Ответ №7
Если вы используете Windows 10, если вы используете
py -m pip install pyqt5
в командной строке он должен скачать нормально. В зависимости от версии Python или Windows, иногда python -m pip install pyqt5
не принимается, поэтому вы должны использовать вместо него py. pip — это хороший способ загрузить много вещей, поэтому я бы порекомендовал это.
Ответ №8
Если вы используете купол, используйте диспетчер пакетов для установки qt (и или pyqt)
Ответ №9
Вы можете легко установить его с помощью Anaconda. Сначала установите Anaconda или Miniconda на вашу систему (скачайте с здесь), а затем установите pyqt следующим образом:
conda install pyqt
Он работает для обеих версий python (2 и 3).
Ответ №10
Чтобы установить версию PyQt5 под GPL, запустите (см. Проект PyQt5):
pip3 install pyqt5
Это установит колесо Python для вашей платформы и вашей версии Python (при условии, что оба поддерживаются).
(Колесо будет автоматически загружено из индекса пакетов Python.)
Колесо PyQt5 включает в себя необходимые части версии LGt Qt. Нет необходимости устанавливать Qt самостоятельно.
(Необходимый sip
упакован как отдельное колесо и будет загружен и установлен автоматически.)
Примечание:
Если вы получаете сообщение об ошибке, говорящее что-то как
No downloads could be found that satisfy the requirement
тогда вы, вероятно, используете неподдерживаемую версию Python.
Как установить PyQt5 | Interesting Life
В интернете много туториолов как установить PyQt5 на свой компьютер, но все они из серии «лучше ничего, чем это».
Чтобы не оставалось вопросов, начнем установку PyQt5 с самого начала, то есть с установки и настройки самого питона, после этого станет понятно, как же установить этот графический редактор, чтобы все работало и версии программ самого питона и PyQt5 были совместимы.
Если вы интересуетесь как установить данный фреймворк, то значит, что питон у вас уже стоит. После этого необходимо узнать, какая версия питона установлена на ваш компьютер.
Для этого в командной строке необходимо ввести python —version
Если по каким-то причинам ответа на данный запрос не пришло, но питон вы при этом устанавливали питон, то скорее всего у вас не установлены переменные среды.
Необходимо отметить, что для того, чтобы у вас работал PyQt, необходимо, чтобы у вас стоял питон версии 3.6, не выше! Версия 3.7 пока не поддерживается!
Версии ниже можно, но тогда новинки будут недоступны, Python 3.6 почти единственная версия, которая совмещает в себе новизну и полную работоспособность. Поэтому придется немного покопаться на сайте, чтобы найти именно версию 3.6.
Для этого нужно перейти по ссылке python.org/downloads и установить нужную версию.
Во время установки поставьте флажок на надписи установить переменную в Path.
Как установить переменную среды?
Нажать правой кнопкой мыши на «мой компьютер», в выпадающем окне выбрать «свойства». Потом выбрать «дополнительные параметры системы», а затем выбрать «переменные среды».
После этого, можно приступать к установке самого PyQt5.
Для этого снова придется заходить в командную строку и вписать pip install pyqt5 pyqt5-tools
Чтобы начать пользоваться графическим редактором, необходимо пройти в папку C:\Users\User\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\pyqt5_tools
В ней вы найдете Designer.exe, жмете на неё правой кнопкой мыши и создаете ярлык, далее этот ярлык можно перенести на рабочий стол, и спокойно пользоваться программой.
Kotlin или Java Android
Фриланс для начинающих программистов
Реальный заработок на андроид
Руководство по PyQt5
В этом руководстве по PyQt5 будет показано, как использовать Python 3 и Qt для создания графического интерфейса пользователя в Windows, Mac или Linux. Мы даже расскажем, как самостоятельно написать установщик.
Что такое PyQt5?
PyQt — это библиотека, которая позволяет использовать фреймворк Qt GUI (GUI — это графический интерфейс пользователя) в Python. Сам Qt, как известно, написан на C++. Используя его в Python, вы можете создавать приложения намного быстрее, не жертвуя при этом значительной частью производительности C++.
PyQt5 это самая последняя, пятая версия Qt. Еще можно найти в интернете случайное упоминание PyQt4, но эта версия устарела и больше не поддерживается.
Новый интересный конкурент PyQt — это Qt for Python. Она обладает практически идентичным API, но в отличие от PyQt имеет лицензию LGPL и, следовательно, может использоваться бесплатно даже в коммерческих проектах. Она поддерживается компанией Qt, а значит, скорее всего, за ней будущее. Здесь мы используем PyQt, потому что она более зрелая. Но, так как их интерфейсы очень похожи, вы всегда можете перейти на Qt for Python позднее.
Установка PyQt
Лучший способ управлять зависимостями в Python — через виртуальную среду. Виртуальная среда — это просто локальный каталог, содержащий библиотеки для данного конкретного проекта. В отличии от общесистемной установки библиотек, это не не повлияет на другие ваши проекты.
Для создания виртуальной среды в текущем каталоге выполните следующую команду:
python3 -m venv venv
Эта команда создаст директорию venv/
. Чтобы активировать виртуальную среду в Windows, выполните следующую команду:
call venv/scripts/activate.bat
А для Mac и Linux вот эту:
source venv/bin/activate
То, что виртуальная среда активирована, вы можете увидеть по префиксу (venv)
в командной строке:
Теперь, чтобы установить PyQt, выполните следующую команду:
pip install PyQt5==5.9.2
Мы используем версию 5.9.2
, потому что не все версии PyQt одинаково стабильны. Данная версия гарантированно будет работать хорошо.
Итак, поздравляем! Вы только что успешно установили PyQt5.
Создание GUI (графического интерфейса пользователя)
Теперь самое время написать ваш первый графический интерфейс! В нашей виртуальной среде запустим Python и выполним следующие команды:
Сначала мы загружаем библиотеку PyQt при помощи оператора import
:
from PyQt5.QtWidgets import QApplication, QLabel
Затем мы создаем QApplication
при помощи следующей команды:
app = QApplication([])
Это обязательное требование библиотеки Qt: каждое приложение с графическим интерфейсом пользователя должно иметь ровно один экземпляр класса QApplication
. До выполнения данной строки многие вещи в Qt просто не работают. Поэтому такая команда будет присутствовать в каждом вашем Qt приложении.
Скобки []
в данной команде представляют аргументы командной строки, переданные приложению. Поскольку наше приложение не использует никаких параметров, мы оставляем скобки пустыми.
Теперь, чтобы реально что-нибудь увидеть, мы создаем следующее сообщение:
label = QLabel('Hello World!')
Затем мы даем команду вывести это на экран:
label.show()
Эта команда покажет небольшое окошко (его вид зависит от вашей операционной системы):
Последний шаг — передача управления библиотеке Qt и указание «запустить приложение, пока пользователь не закроет его». Это делается так:
app.exec_()
Если все это сработало, как ожидалось, тогда супер! Вы только что создали при помощи Python и библиотеки Qt свое первое приложение с графическим интерфейсом.
Виджеты
Все, что вы видите в приложениях PyQt, называется виджетами. Кнопки, сообщения, окна, диалоговые окна, индикаторы выполнения и так далее — все это виджеты. Подобно html
элементам, виджеты в Qt зачастую вложены друг в друга. Например, окно может содержать кнопку, а кнопка, в свою очередь, — сообщение.
На следующей картинке показаны наиболее распространенные виджеты Qt:
Они перечислены ниже в порядке сверху вниз и слева направо:
Отсюда вы можете загрузить, если хотите, код приложения, которое создает такое окно.
Макеты
Как и в приведенном выше примере, ваш графический интерфейс, скорее всего, будет состоять из нескольких виджетов. В этом случае вам нужно указать Qt, как их расположить. Например, вы можете использовать QVBoxLayout для вертикального расположения виджетов:
Вот код, создающий интерфейс, изображенный на картинке выше:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout app = QApplication([]) window = QWidget() layout = QVBoxLayout() layout.addWidget(QPushButton('Top')) layout.addWidget(QPushButton('Bottom')) window.setLayout(layout) window.show() app.exec_()
Как и ранее, мы создали экземляр класса QApplication
. Затем мы создаем само окно (window
). Мы используем для него самый простой тип QWidget
, так как он просто используется как контейнер, а никакого особого поведения нам задавать не нужно. Затем мы создаем макет (layout
) и добавляем к нему две кнопки QPushButton
. Наконец, мы говорим окну использовать именно этот макет (и, следовательно, его содержимое). Как и в нашем первом приложении, мы заканчиваем вызовами методов .show ()
и app.exec_ ()
.
Безусловно, существует большое количество разных макетов, например QHBoxLayout
для размещения элементов в ряд. Более подробно с ними можно ознакомиться в документации Qt.
Пользовательские стили
Одной из сильных сторон Qt является поддержка пользовательских стилей. Существует множество механизмов, позволяющих настраивать внешний вид вашего приложения. В этом разделе описаны некоторые из них.
Встроенные стили
Самый грубый способ изменить внешний вид вашего приложения — установить глобальный стиль. Вспомните изображение виджетов, которое мы уже приводили выше:
Здесь используется стиль под названием Fusion
. Если вместо этого использовать стиль Windows
, это будет выглядеть следующим образом:
Чтобы применить стиль, нужно использовать метод app.setStyle (…)
:
from PyQt5.QtWidgets import * app = QApplication([]) app.setStyle('Fusion') ...
Доступные стили зависят от вашей платформы, но обычно они включают в себя «Fusion», «Windows», «WindowsVista» (только для Windows) и «Macintosh» (только для Mac).
Пользовательские цвета
Если вам нравится стиль, но вы хотите изменить его цвета (например, на темную тему), вы можете использовать QPalette
и app.setPalette (...)
. Например:
from PyQt5.QtCore import Qt from PyQt5.QtGui import QPalette from PyQt5.QtWidgets import QApplication, QPushButton app = QApplication([]) app.setStyle('Fusion') palette = QPalette() palette.setColor(QPalette.ButtonText, Qt.red) app.setPalette(palette) button = QPushButton('Hello World') button.show() app.exec_()
Это изменит цвет текста в кнопках на красный:
Как создать темную тему стиля Fusion, можно посмотреть вот здесь.
Таблицы стилей
В дополнение к вышесказанному вы можете изменить внешний вид своего приложения с помощью таблиц стилей. Это аналог CSS в Qt. Например, мы можем добавить некоторое пространство:
from PyQt5.QtWidgets import QApplication, QPushButton app = QApplication([]) app.setStyleSheet("QPushButton { margin: 10ex; }") button = QPushButton('Hello World') button.show() app.exec_()
Для получения дополнительной информации о таблицах стилей смотрите документацию Qt.
Сигналы и слоты
Qt использует механизм, называемый сигналами (signals), чтобы вы могли реагировать на такие события, как нажатие кнопки пользователем. Следующий пример иллюстрирует это. Код содержит кнопку, при нажатии на которую отображается окно сообщения.
from PyQt5.QtWidgets import * app = QApplication([]) button = QPushButton('Click') def on_button_clicked(): alert = QMessageBox() alert.setText('You clicked the button!') alert.exec_() button.clicked.connect(on_button_clicked) button.show() app.exec_()
Строка button.clicked
— это сигнал, метод .connect (...)
позволяет нам установить на нем так называемый слот. Это просто функция, которая вызывается при поступлении сигнала. В приведенном выше примере наш слот показывает окно сообщения.
Термин «слот» важен при использовании Qt в C++, потому что в C++ слоты должны быть объявлены особым образом. Однако в Python любая функция может быть слотом — мы видели это выше. Поэтому различие между слотами и обычными функциями не имеет для нас большого значения.
Сигналы в Qt используются повсеместно. И, конечно, вы также можете определить свои собственные сигналы. Но это выходит за рамки данного руководства.
Компилируем наше приложение
Теперь у вас есть базовые знания для создания GUI, который реагирует на ввод пользователя. Допустим, вы написали приложение. Оно работает на вашем компьютере. Как передать его другим людям, чтобы они тоже могли его запустить?
Вы можете попросить пользователей вашего приложения установить Python и PyQt, как мы сделали выше, а затем предоставить им свой исходный код. Но это очень утомительно (и обычно непрактично). Вместо этого нам нужен отдельный вариант вашего приложения. То есть двоичный исполняемый файл, который другие люди могут запускать в своих системах, не устанавливая ничего.
В мире Python процесс превращения исходного кода в автономный исполняемый файл называется замораживанием (freezing). Несмотря на наличие множества библиотек, решающих эту проблему, например PyInstaller
, py2exe
, cx_Freeze
, bbfreze
, py2app
и так далее, замораживание приложений PyQt всегда было на удивление непростой проблемой.
Мы будем использовать новую библиотеку под названием fbs
, которая позволяет создавать автономные исполняемые файлы для приложений PyQt. Для ее установки введите команду:
pip install fbs
Затем выполним следующую команду:
fbs startproject
Вам будет предложено ввести несколько значений:
Когда вы введете предложенную команду run
, должно открыться пустое окно:
Это приложение PyQt5, такое же, как и те, что мы видели раньше. Его исходный код находится в src/main/python/main.py в вашем текущем каталоге. Но вот что самое интересное: мы можем использовать fbs, чтобы превратить его в отдельный исполняемый файл!
fbs freeze
Эта команда создает и помещает автономный двоичный файл в папку /MyApp/
вашего текущего каталога. Вы можете отправить его своим друзьям (с той же ОС, что и ваша), и они также смогут запустить ваше приложение!
Бонус: создаем установщик
Библиотека fbs также позволяет вам создать установщик для вашего приложения с помощью команды fbs installer
:
(Если вы работаете в Windows, вам сначала нужно установить NSIS и поместить путь к нему в свой PATH.)
За дополнительной информацией по использованию библиотеки fbs
обратитесь к ее документации.
Итоги
Если вы дошли до этого места — примите наши поздравления. Надеемся, теперь у вас есть хорошее представление о том, как для написания приложений Python можно использовать PyQt (и различные ее части). Мы также узнали, как можно создавать автономные исполняемые файлы и установщики при помощи fbs.
PyQt5: первые программы | Python 3 для начинающих и чайников
Я начинаю перевод серии уроков PyQt5 от zetcode.
PyQt5 — это набор Python библиотек для создания графического интерфейса на базе платформы Qt5 от компании Digia.
Он доступен для Python 2.x и 3.x. Этот учебник использует Python 3.
Библиотека Qt является одной из самых мощных библиотек GUI (графического интерфейса пользователя).
Установить PyQt5 на Windows можно с официального сайта библиотеки.
Установить PyQt5 на linux-системы можно с помощью любого менеджера пакетов:
sudo apt-get install python3-pyqt5 pyqt5-dev-tools
PyQt5 реализован в виде набора python-модулей. Эта библиотека имеет более 620 классов и 6000 функций и методов.
Это мультиплатформенная библиотека, которая работает на всех основных операционных системах, в том числе Unix, Windows и Mac OS.
Простой пример
Это простой пример, показывающий небольшое окно. Тем не менее, мы можем многое сделать с этим окном. Мы можем изменить его размер, развернуть его или свернуть. Это требует написания значительного объёма кода. Однако кто-то уже запрограммировал эту функциональность до нас. Поскольку эта функциональность повторяется в большинстве приложений, нет необходимости писать её снова.
PyQt5 является инструментом высокого уровня. Если бы мы писали это на более низком уровне, следующий пример кода легко мог бы растянуться на сотни строк:
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__main__': app = QApplication(sys.argv) w = QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() sys.exit(app.exec_())
Приведенный выше код показывает небольшое окно на экране.
import sys from PyQt5.QtWidgets import QApplication, QWidget
Здесь мы делаем необходимые импорты. Основные виджеты расположены в PyQt5.QtWidgets.
app = QApplication(sys.argv)
Каждое приложение PyQt5 должно создать объект приложения (экземпляр QApplication). Параметр sys.argv это список аргументов командной строки. Скрипты Python можно запускать из командной строки. Это способ, которым мы можем контролировать запуск наших сценариев.
w = QWidget()
Виджет QWidget это базовый класс для всех объектов интерфейса пользователя в PyQt5. Мы предоставляем конструктор по умолчанию для QWidget. Конструктор по умолчанию не имеет родителя. Виджет без родителей называется окно.
w.resize(250, 150)
Метод resize() изменяет размеры виджета. Он стал 250 пикселей в ширину и 150 в высоту.
w.move(300, 300)
Метод move() двигает виджет на экране на координату x=300, y=300.
w.setWindowTitle('Simple')
Здесь мы задаём заголовок нашего окна.
w.show()
Метод show() отображает виджет на экране. Виджет сначала создаётся в памяти, и только потом (с помощью метода show) показывается на экране.
sys.exit(app.exec_())
Наконец, мы попадаем в основной цикл приложения. Обработка событий начинается с этой точки. Основной цикл получает события от оконной системы и распределяет их по виджетам приложения. Основной цикл заканчивается, если мы вызываем метод exit() или главный виджет уничтожен. Метод sys.exit() гарантирует чистый выход. Вы будете проинформированы, как завершилось приложение.
Метод exec_ () имеет подчеркивание. Это происходит потому, что exec является ключевым словом в python 2.
Значок приложения
Значок приложения — небольшое изображение, которое обычно отображается в верхнем левом углу заголовка. В следующем примере мы покажем, как сделать это в PyQt5. Мы также представим некоторые новые методы.
Не забудьте также скачать какую-нибудь иконку 🙂
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIcon class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 220) self.setWindowTitle('Icon') self.setWindowIcon(QIcon('web.png')) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
Предыдущий пример был написан в процедурном стиле. Язык программирования Python поддерживает как процедурный, так и объектно-ориентированный стили программирования. Программирование в PyQt5 означает программирование в ООП.
class Example(QWidget): def __init__(self): super().__init__() ...
Три важные вещи в объектно-ориентированном программировании это классы, данные и методы. Здесь мы создаем новый класс Example. Класс Example наследуется от класса QWidget. Это означает, что мы вызываем два конструктора: первый для класса Example и второй для родительского класса. Функция super() возвращает родительский объект Example с классом, и мы вызываем его конструктор.
self.initUI()
Создание GUI делегируется методу initUI().
self.setGeometry(300, 300, 300, 220) self.setWindowTitle('Icon') self.setWindowIcon(QIcon('web.png'))
Все три метода были унаследованы от класса QWidget.
Метод setGeometry() делает две вещи: помещает окно на экране и устанавливает его размер. Первые два параметра х и у — это позиция окна. Третий — ширина, и четвертый — высота окна. На самом деле, он сочетает в себе методы resize() и move() в одном методе.
Последний метод устанавливает иконку приложения. Чтобы сделать это, мы создали объект QIcon. QIcon получает путь к нашей иконке для отображения.
if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
Создаются объекты application и Example. Запускается основной цикл.
Подсказки
Мы можем предоставить всплывающую подсказку для любого из виджетов.
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import (QWidget, QToolTip, QPushButton, QApplication) from PyQt5.QtGui import QFont class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is a <b>QWidget</b> widget') btn = QPushButton('Button', self) btn.setToolTip('This is a <b>QPushButton</b> widget') btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Tooltips') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
В этом примере мы покажем подсказку для двух виджетов PyQt5.
QToolTip.setFont(QFont('SansSerif', 10))
Этот статический метод устанавливает шрифт, используемый для отображения подсказки. Мы используем шрифт 10px SansSerif.
self.setToolTip('This is a <b>QWidget</b> widget')
Чтобы создать всплывающую подсказку, мы вызываем метод setToolTip(). Мы можем использовать форматирование текста.
btn = QPushButton('Button', self) btn.setToolTip('This is a <b>QPushButton</b> widget')
Мы создаем виджет кнопки и устанавливаем подсказку для него.
btn.resize(btn.sizeHint()) btn.move(50, 50)
Меняем размер кнопки и перемещаем относительно окна. Метод sizeHint() дает рекомендуемый размер для кнопки.
Закрытие окна
Очевидный способ закрыть окно, это нажать на крестик. В следующем примере мы покажем, как мы можем программно закрыть наше окно. Мы кратко рассмотрим сигналы и слоты.
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QPushButton, QApplication from PyQt5.QtCore import QCoreApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): qbtn = QPushButton('Quit', self) qbtn.clicked.connect(QCoreApplication.instance().quit) qbtn.resize(qbtn.sizeHint()) qbtn.move(50, 50) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Quit button') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
В этом примере, мы создаем кнопку выхода. После нажатия на кнопку, приложение завершается.
qbtn = QPushButton('Quit', self)
Мы создаем кнопку. Кнопка является экземпляром класса QPushButton. Первый параметр конструктора — название кнопки. Вторым параметром является родительский виджет. Родительский виджет является виджетом Example, который наследуется от QWidget.
qbtn.clicked.connect(QCoreApplication.instance().quit)
Система обработки событий в PyQt5 построена на механизме сигналов и слотов. Если мы нажмем на кнопку, вызовется сигнал «нажатие». Слот может быть слот Qt или любая Python функция.
QCoreApplication содержит главный цикл обработки; он обрабатывает и диспетчеризирует все события. Метод instance() дает нам его текущий экземпляр.
Обратите внимание, что QCoreApplication создается с QApplication. Сигнал «нажатие» подключен к методу quit(), который завершает приложение. Коммуникация осуществляется между двумя объектами: отправителя и приемника. Отправитель кнопка, приемник — объект приложения.
Message Box
По умолчанию, если мы нажмем на крестик, QWidget закрывается. Иногда мы хотим изменить это поведение по умолчанию, например, если у нас есть открытый файл, в котором мы сделали некоторые изменения. Мы показываем окно с сообщением для подтверждения действия.
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Message box') self.show() def closeEvent(self, event): reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
Если мы закрываем QWidget, генерируется QCloseEvent. Чтобы изменить поведение виджета, нам нужно переопределить обработчик события closeEvent().
reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
Мы показываем окно с сообщением и с двумя кнопками: Yes и No. Первая строка отображается в заголовке окна. Вторая строка является текстовым сообщением и отображается в диалоговом окне. Третий аргумент определяет комбинацию кнопок, появляющихся в диалоге. Последний параметр — кнопка по умолчанию. Это кнопка, на которой изначально установлен фокус клавиатуры. Возвращаемое значение хранится в переменной reply.
if reply == QtGui.QMessageBox.Yes: event.accept() else: event.ignore()
Здесь мы проверяем возвращаемое значение. Если мы нажмем на кнопку Yes, мы принимаем событие, которое приводит к закрытию виджета и приложения. В противном случае мы будем игнорировать событие закрытия.
Центрирование окна на экране
Следующий скрипт показывает, как мы можем центрировать окно на рабочем столе.
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.resize(250, 150) self.center() self.setWindowTitle('Center') self.show() def center(self): qr = self.frameGeometry() cp = QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
Класс QtWidgets.QDesktopWidget предоставляет информацию о компьютере пользователя, в том числе о размерах экрана.
self.center()
Код, который будет центрировать окно, находится в нами созданном методе center().
qr = self.frameGeometry()
Мы получаем прямоугольник, определяющий геометрию главного окна. Это включает в себя любые рамки окна.
cp = QDesktopWidget().availableGeometry().center()
Мы получаем разрешение экрана нашего монитора. И с этим разрешением, мы получаем центральную точку.
qr.moveCenter(cp)
Наш прямоугольник уже имеет ширину и высоту. Теперь мы установили центр прямоугольника в центре экрана. Размер прямоугольника не изменяется.
self.move(qr.topLeft())
Мы двигаем верхний левый угол окна приложения в верхний левый угол прямоугольника qr, таким образом, центрируя окно на нашем экране.
В этой части урока PyQt5 мы рассмотрели некоторые основы.
python 3.x — Установка PyQt5 Designer на windows
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира
.
python — как установить PyQt4 в Windows?
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
.
python — установка PyQt5 в Windows с помощью pip
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
.
Как установить PyQt 4.3 и Python 2.5 в Windows
Обновление 1/10/2008: PyQt значительно упростил процесс установки, поскольку он объединил все необходимое в одном установщике, включая версию QT 4.3 с открытым исходным кодом. Теперь все, что вам нужно сделать, это установить Python и пакет PyQt. Сразу же следуют обновленные шаги. Ниже приведены старые инструкции.
Обновление 01.07.2008: обновлено для PyQt 4.4.2
НОВЫЕ ИНСТРУКЦИИ
Вот шаги по установке и созданию простого приложения с графическим интерфейсом «Hello World» с использованием PyQt 4.4 и Python 2.5 в Windows.
Установить Python 2.5
- Перейдите на http://www.python.org/download/ и щелкните «Python 2.5.x Windows installer»
- Сохраните и запустите установщик Windows
- Выполните действия и примите по умолчанию.
Установите пакет PyQt 4.4 (включая QT 4.4)
- Перейдите на http://www.riverbankcomputing.co.uk/software/pyqt/download и выберите «PyQt-Py2.5-gpl-4.4.2. -1.exe «ссылка.
- Сохраните и запустите файл.
- Выполните шаги и примите значения по умолчанию.
Запустить приложение «Hello World»
- Перейдите в «Пуск» -> «Все программы» -> «Python 2.5» -> «IDLE (Python GUI)»
- Откройте новое окно («Файл» — > «Новое окно»)
- Введите следующий код внутри и сохраните:
import sys из импорта PyQt4.QtGui * app = QApplication (sys.argv) button = QPushButton ("Hello World", Нет) button.show () app.exec_ ()
- Нажмите «F5» для запуска.Должно появиться окно с одной кнопкой.
Для получения дополнительных примеров перейдите в «Пуск» -> «Все программы» -> «PyQt GPL v4.4.2 для Python v2.5»> «Примеры»> «Источник примеров PyQt» (для установки по умолчанию это также находится по адресу C: \ Python25 \ PyQt4 \ examples
.) Для начала загляните в каталог «tutorial».
СТАРЫЕ ИНСТРУКЦИИ
Вот шаги по установке и созданию простого приложения с графическим пользовательским интерфейсом «Hello World» с использованием PyQt 4.1.1, Python 2.5 и QT 4.2.2 Выпуск с открытым исходным кодом (GPL) в Windows XP с компилятором MinGW.
Установить Python 2.5
- Перейдите по адресу http://www.python.org/download/ и нажмите «Python 2.5 Windows installer»
- Сохраните и запустите установщик Windows
- Выполните действия и примите значения по умолчанию.
Установите MinGW
- Перейдите на http://www.mingw.org/download.shtml
- Загрузите следующие файлы bin из раздела «Текущий»:
- gcc-core-3.4.2-20040916-1.tar.gz
- gcc-g ++ — 3.4.2-20040916-1.tar.gz
- mingw-runtime-3.9.tar.gz
- w32api-3.6.tar.gz
- Распакуйте все файлы в «c: \ mingw»
Установите QT 4.2.2 Open Source edition
- Перейдите на страницу загрузки с открытым исходным кодом по адресу http://www.trolltech.com/developer/downloads/qt/windows . Обратите внимание, что существует также ознакомительная версия. Это * не * тот, который вам нужен.
- Под заголовком «Загрузить» выберите «http: // ftp.iasi.roedu.net/mirrors/ftp.trolltech.com/qt/source/qt-win-opensource-4.2.2-mingw.exe «.
- Выполните действия и примите значения по умолчанию.
- Когда вы получите на страницу MinGW, оставьте поле «Загрузить и установить минимальную установку MinGW» снятым и убедитесь, что для места установки MinGW задано значение «c: \ mingw». Нажмите «Установить».
- Вы получите сообщение об ошибке, которое говорит, что программа установки не может найти действительный файл «w32api.h». Вы можете установить версию 3.2 с сайта mingw, но версия 3.6 версия работает. Нажмите «Да», чтобы продолжить. Нажмите «Готово», чтобы завершить установку.
Установите PyQt 4.1.1
- Перейдите на http://www.riverbankcomputing.co.uk/pyqt/download.php и выберите «PyQt-gpl-4.1.1-Py2.5-Qt4.2.2. exe «ссылка.
- Сохраните и запустите файл.
- Выполните шаги и примите значения по умолчанию.
Проверьте переменные среды
- Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства»
- Щелкните вкладку «Дополнительно»
- Щелкните «Переменные среды»
- Необходимо установить следующие переменные:
- пользователь переменная QTDIR — «c: \ qt \ 4.2.2 «
- пользовательская переменная QMAKESPEC -» win32-g ++ «
- системная переменная PATH — include» C: \ Qt \ 4.2.2 \ bin; C: \ Python25 \ Scripts; C: \ Python25; C: \ Python25 \ DLLs ; «
Запустить приложение« Hello World »
- Перейдите в« Пуск »->« Все программы »->« Python 2.5 »->« IDLE (Python GUI) »
- Откройте новое окно ( «Файл» -> «Новое окно»)
- Введите следующий код внутри и сохраните:
import sys
from PyQt4.QtGui import *
app = QApplication (sys.argv)
button = QPushButton ("Hello World", Нет)
button.show ()
app.exec_ () - Нажмите «F5» для запуска.
Теги Technorati: python, pyqt.