Pyqt5 python ��������� linux

Install pyqt

PyQt is often not installed by default. The PyQt module can be used to create desktop applications with Python. In this article you’ll learn how to install the PyQt module.

Desktop applications made with PyQt are cross platform, they will work on Microsoft Windows, Apple Mac OS X and Linux computers (including Raspberry Pi).

How to install PyQt5 on Windows?

To install PyQt on Windows there are a few steps you need to take.
First use the installer from the qt-project website, from qt to install PyQt.

Next you want to install a Python version 3.3 or newer. Check the box to add all of the PyQt5 extras. It’s not necessary to compile everything from source, you can install all the required packages with the installer.

On Python >= 3.6, you can also try this command:

It should work without problems.

How to install PyQt5 on Mac OS X?

On Apple Mac OS X installation is a bit simpler. The first step to take is to install the Mac OS X binary. This installs the PyQt GUI library.

But to use it from Python, you also need Python module. This is where the tool brew comes in.
You can use brew to install pyqt (in the terminal):

How to install PyQt5 on Linux?

Python is often installed by default on Linux (in nearly all of the distributions including Ubuntu). But you want to make sure to use Python 3, because of all the features and ease of use. You can verify that you have the newest Python version with the command:

On Ubuntu Linux they sometimes include two versions of python, python3 and python . In that case use Python 3.

Once you have Python ready, the next step is to install PyQt.

This isn’t hard to do if you have some Linux experience. You can install PyQt your software package manager. Which package manager to use depends on which Linux distribution you are using.

On Ubuntu Linux / Debian Linux you can use the command:

Источник

PyQt5 — Урок 002. Hello World на PyQt5

Python — это высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода, как говорит нам Википедия. А также активно используется для написания Web-приложений. Ну а для работы с Qt для Python была разработана компанией Riverbank Computing библиотека PyQt5, которая является набором «привязок» к библиотеке Qt5.

Из интереса, я решил написать небольшой Hello World с использованием PyQt5.

Установка

Первым делом устанавливаем Python, в моём случае это Python 3.5.2.

Для Windows можно скачать установочный пакет с официального сайта Python . Для Linux можем воспользоваться стандартным менеджером пакетов.

Далее необходимо установить PyQt5. В случае Linux можно либо установить с помощью стандартного менеджера пакетов. Например, для deb-based дистрибутивов:

sudo apt-get install python python3-pyqt5 pyqt5-dev-tools

Либо установить сначала утилиту pip для установки пакетов Python:

sudo apt-get install python-pip

И уже произвести установку с помощью данной утилиты, что будет аналогично как для Windows, так и для Linux систем:

pip install PyQt5

Для разработки на Python была выбрана IDE PyCharm.

Hello World

А теперь напишем небольшую программу на PyQt5, которая будет запускать окно приложения с надписью и иметь один пункт меню в панели меню. По клику на данный пункт будем закрывать приложение.

Полный текст программы

Отличия

1. if __name__ == «__main__»:

В приложениях на Python часто можно встретить следующую конструкцию:

if __name__ == «__main__»:

С помощью данной конструкции можно указать Python-скрипту, какой программный код исполнять в том случае, если он запускается как самостоятельное приложение. В случае же, если данный скрипт будет импортирован в другой скрипт, то программный код, который будет следовать за данной конструкцией, не будет вызван.

2. Синтаксис сигналов и слотов

В PyQt5 используется следующий синтаксис сигналов и слотов, который показан на примере использования QAction.

Читайте также:  Аналог squid для linux

Тогда как в Qt C++ тоже самое выглядело бы следующим образом:

3. Python

Пожалуй, самое очевидное 😉
Здесь без комментариев.

Заключение

В результате получим программу следующего вида.

Рекомендуем хостинг TIMEWEB

Рекомендуемые статьи по этой тематике

Источник

PyQt5 для начинающих

Привет, Хабр! Сегодня я вас хочу научить делать интерфейс на Python 3&PyQt5.

Установка PyQt5

Для того, чтобы установить PyQt5 в Windows или MacOS, откройте Командную строку или Терминал и введите:

Для Linux, откройте Терминал и введите:

Hello, World!

А сейчас сделаем Hello World приложение. Создайте файл Python, откройте его и введите такой код:

Когда вы запустите, должна получится примерно такая картина:

Окно Hello, world на Ubuntu

Меняем шрифт надписи

А теперь поменяем шрифт надписи. Теперь код станет таким:

Пример рассчитан на то, что у вас уже установлен шрифт Rubik от Google Fonts. Если нет, его всегда можно скачать отсюда.

Более продвинутая разметка с XHTML

А теперь добавим XHTML. Например, так:

Те, кто хотя бы немного знают XHTML, заметят, что надпись Hello сделана курсивом, слово world — жирным, а 123 — и вычеркнуто, и жирное.

Шпаргалка по XHTML

Код (моноширным шрифтом)

Размер текста 16 пунктов

Текст на ярко-зелёном фоне.

Выравнивание по центру

Кстати, я знаю такой конструктор HTML: http://blockly.ru/blockly-html/index.html . Лично мне он по душе. Только сложно вставлять свои тэги.

Больше надписей!

А теперь сделаем 2 надписи:

На вторую я тоже добавил форматирование (подчёркивание), а у первой убрал 123.

Окно без resize()

Все предыдущие примеры использовали такую конструкцию:

Но без этой конструкции можно обойтись, так как виджеты будут сами себе расчищать место.

Подсказки

Ко всем виджетам можно добавить подсказку. Например (привожу только важную для понимания часть кода):

Эпилог

Вот и всё. В следующей части я постараюсь описать кнопки, меню и события.

До новых встреч!

О песочнице

Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.

Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.

Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.

О модерации

Не надо пропускать:

  • рекламные и PR-публикации
  • вопросы и просьбы (для них есть Хабр Q&A);
  • вакансии (используйте Хабр Карьеру)
  • статьи, ранее опубликованные на других сайтах;
  • статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
  • жалобы на компании и предоставляемые услуги;
  • низкокачественные переводы;
  • куски программного кода без пояснений;
  • односложные статьи;
  • статьи, слабо относящиеся к или не относящиеся к ней вовсе.

Источник

Правильная установка pyqt5

Здравствуйте.
Только начинаю изучать питон. Использую для этого PyCharm. Хочу создать графический интерфейс. Погуглив нашёл сразу несколько мануалов, но ни один из них не смог выполнить до конца. Понял, что мне нужен PyQt5. И вроде как установил его. Ну, по крайней мере при попытке выполнить команду sudo pip3 install pyqt5 я получаю в ответ Requirement already satisfied: pyqt5 in /usr/lib/python3/dist-packages (5.12.3)

Далее мануалы разнились (в общем-то, даже команда по установке разнилась), но вроде как мне надо установить графические инструменты с помощью команды pip3 install pyqt5-tools. Вот это уже не выходит. Could not find a version that satisfies the requirement pyqt5-tools (from versions: )
No matching distribution found for pyqt5-tools

В общем, я уже запутался с тем, что мне вообще надо, а что не надо, пожалуйста, скажите по шагово, что мне надо сделать, чтобы получить возможность работать с графическими интерфейсами.

Установка PyQt5
Здравствуйте. Я бы хотел узнать как установить PyQt5 в питон 3. Обыскал уже весь интернет и во всех.

Установка PyQt5
Не могу установить PyQt5. Скачал с официального сайта и запустил файл «configure.py». Появилось и.

Установка PyQT5 в виртуальное окружение (Debian)
Всем доброго времени суток! Создал виртуальное окружение с помощью virtualenv с Python3.4 и.

PyQt5 Error while finding module specification for ‘PyQt5.uic.pyuic’ (ModuleNotFoundError: No module named ‘PyQt
В общем поставил pyqt5 и python3.7 пишу в консоль python -m PyQt5.uic.pyuic Выдает ошибку Error.

FaceHoof, первое, что Вам необходимо сделать:
— проверить правильность установки, это можно сделать с использованием следующих инструкций в IDLE (не терминале (не в интерактивном режиме) и не PyCharm)
>>> from PyQt5 import QtCore
>>>QtCore.PYQT_VERSION_STR
Здесь должен быть отражен номер версии пакета PyQt5
>>>QtCore.QT_VERSION_STR
Здесь версия QT

Читайте также:  Команды для командной строки windows проверка диска

Добавлено через 4 минуты

Скорее всего данное сообщение появляется из-за различий версий PyQt5, pyqt5-tools и Qt, точно не знаю.

Проще удалить PyQt5 командой:
pip3 uninstall pyqt5

И установить заново:
pip3 install pyqt5

Добавлено через 4 минуты

Далее pip3 install pyqt5-tools. Или действия аналогичные выше сказанному в случае возникновения проблем. Возможно потребуется обновить сам пакет pip командой python -m pip install —upgrade pip (или pip3)

Данная библиотека необходима так как в составе последних версий PyQt отсутствует «Дизайнерский пакет» QtDesigner.

Добавлено через 5 минут
Ну и экспериментируйте, читайте в Python это позволительно и удачи. Если что-то не получается или у Вас unix или mac, возможно, потребуются другие действия. Так же многое зависит от 32 или 64 битной версии python.

Источник

Pyqt5 python ��������� linux

Руководство по работе с библиотекой Qt с использованием Python 3

Установка необходимых компонентов для работы

Установить Python версии не менее 3.5.

В операционных системах семейства Windows процесс установки сводится к скачиванию установщика с сайта https://www.python.org и его запуска.

В операционных система семейства Unix процесс установки сводится к запуску пакетного менеджера с выбором необходимого пакета.

Пример установки Python 3 в Ubuntu:

По умолчанию, путь к интерпретатору Python 3 при установке на любой операционной системе добавляется к переменной среды PATH. В Windows для запуска интепретатора достаточно набрать в консоли:

В Unix системах, как правило, может быть уже установлена более ранняя версия интерпретатора, поэтому для корректного запуска 3-ей ветки Python рекомендуется выполнить в терминале команду:

В Python установка сторонних библиотек (или пакетов) происходит с помощью пакетного менеджера pip.

По умолчанию, в Windows при установке самого интерпретатора устанвливается и пакетный менеджер.

В Unix системах установка пакетного менеджера pip происходит отдельно.

Пример установки pip в Ubuntu:

Установка сторонних пакетов (библиотек) сводится к следующей команде в терминале Unix/консоли Windows:

pip автоматически найдет, скачает и установит необходимый пакет из сети интернет.

Для установки библиотеки Qt следует выполнить следующую команду:

Основы работы с Qt

Библиотека Qt является кросплатформенной и предназначена для написания графических приложений. Она инкапсулирует в себе все основные понятия любой из операционных графических систем: окна, фреймы, модальные диалоги, кнопки, текстовые поля, панели и т.д. Ядро библиотеки и всех ее компонентов написаны на языке программирования C++. Библиотека не является монолитной и разбита на несколько основных модулей, которые содержат классы для работы с графикой, сетью, файлами, аудио/видео, потоками ОС и т.д.

Пакет PyQt5 является портом для работы с Qt на языке Python. Ввиду этого, пакет наследует основные названия модулей библиотеки и их классов. Однако, в отличие от процесса работы на C++ под Qt, работа на языке Python с использованием пакета PyQt5 избавляет программиста от низкоуровневых особенностей C++ и ускоряет процесс написания программного кода. В пользу PyQt5 стоит сказать, что скорость понимания абстракций графического интерфейса, написанных на языке Python, бывает более высокой, нежели на C++.

Как правило, процесс ознакомления с PyQt5 тесно связан с чтением документации по тому или иному классу. Однако, стоит заметить, что все описания классов модулей Qt представлены на языке C++. Но такие понятия, как классы, его атрибуты и методы в языке C++ интуитивно легко перекладываются на язык Python. Тем самым, любые описания и примеры использования того или иного атрибута/метода на языке C++ в документации Qt справедливы и для Python, где любые упоминания про указатели и ссылки просто опускаются при работы с PyQt5.

На данный момент библиотека Qt развивается в двух направлениях: Qt Widgets и Qt Quick. Qt Widgets является фундаментальным и базовым направлением библиотеки. Данный модуль существует с момента сущестования платформы и направлен на создания графических приложений в стиле объектно-ориентированного подхода, где любой компонент интерфейса представлен объектом класса, тем самым организуя весть графический интерфейс пользователя в иерархию объектов. Qt Quick является более современным ответвлением платформы Qt. Данное направление вводит новые высокоуровневые абстракции вроде машины конечного автомата и вносит принципы реактивного программирования. Также, Qt Quick предлагает идею декларативного описания пользовательского интерфейса средствами JavaScript подобного языка QML.

В данном руководстве описываются базовые принципы работы с Qt Widgets совместно с пакетом PyQt5.

1. Основной цикл обработки событий

Приложение Qt построено на основе бесконечного цикла, который обратывает события: события операционной системы, события пользоваля приложения (поведение мыши, использование клавиатуры). Для запуска минимального приложения, следует передать циклу контекст, в котором начнут обрабатываться события. Базовым контекстом является понятие Виджет, которое представлено классом QWidget.

Читайте также:  Значки курсора мыши windows 10

Виджет — это аналог окна, которое как может иметь рамку, кнопки сворачивания и закрытия, а может их и не иметь. С точки зрения операционных систем, это именно контекст, где операционная система может реагировать на события пользователя. В Qt виджеты могут содержать иерархию из других виджетов. При этом, разработчик никак не ограничен тем, как будет выглядеть виджет. Им могут быть как стандартное текстовое поле, кнопка, текстовая метка, так и сложный графический объект со своим стилем прорисовки.

Минимальное приложение Qt состоит из определения класса наследника QWidget, создания его экземпляра и запуска бесконечного цикла обработки событий.

Как было сказано, виджет представлен классом QWidget. Для создания виджета следует определить класс-наследник QWidget. В конструкторе класса следует добавить последний аргумент по умолчанию parent и вызвать инструкцию:

Параметр parent указывает на родительский виджет описываемого. Если описываемый является корневым, parent = None. Стоит сказать, что создание любого другого дочернего виджета, разметки должно просходить с передачей последним аргументом родительского виджета parent. Наиболее часто, родителем оказывается описываемый виджет self.

Часто, виджетам устанавливают ту или иную разметку, по правилам которой внутри располагаются другие виджеты. Наиболее используемыми классами разметки являются QVBoxLayout (вертикальная разметка) и QHBoxLayout (горизонтальная разметка). Для добавления дочерних виджетов в разметку предназачен метод addWidget(QWidget). Чтобы установить виджету ту или иную разметку используется метод setLayout(QLayout).

Хорошим стилем считается создание всех дочерних разметок/виджетов описываемого в теле контструктора класса. Как правило, создается приватный метод, например _initUI, и вызывается в конструкторе __init__.

Qt предоставляет набор удобных стандартных виджетов, поведение которых также можно изменить определением нового класса-наследника.

2.1 Текстовая метка: QLabel

Часто используемые методы:

  1. text() → string: возвращает текст метки.
  2. setText(string): устанавливает текст метки.

2.2 Текстовое поле: QLineEdit

Часто используемые методы:

  1. text() → string: возвращает текст поля ввода.
  2. setText(string): устанавливает текст поля ввода.

2.3 Кнопка: QPushButton

Часто используемые методы:

  1. setText(string): устанавливает текст на кнопке.

2.4 Многострочное поле ввода: QTextEdit

Часто используемые методы:

  1. setText(string): устанавливает текст в поле ввода.
  2. toPlainText() → string: возвращает обычный текст.
  3. toHtml() → string: возврашает текст в формате HTML.

2.5 Слайдер: QSlider

Часто используемые методы:

  1. setTickInterval(int): устанавливает шаг.
  2. tickInterval() → int: возвращает шаг.
  3. setMinimum(int): устанавливает минимальное значение.
  4. setMaximum(int): устанавливает максимальное значение.

2.6 Чек-бокс: QCheckBox

Часто используемые методы:

3. Взаимодействие с пользователем: введение в сигналы/слоты

В библиотеке Qt любые из классов, которые являются наследниками класса QObject могут участвовать в механизме сигналов/слотов. Практически все классы Qt являются наследниками QObject, в том числе и виджеты.

Механизм сигналов/слотов — является базовым понятием в обработке событий. Событиями могут выступать: действия пользователя графического интерфейса, события операционной системы и т.д. Само понятие события в Qt носит название Сигнал. Реакция на сигнал это всегда какая-либо простая функция, которая носит название Слот.

Как правило, дочерние компоненты описываемого виджета генерируют какие-либо сигналы. Например, сигнал клика по кнопке. Для реакции на данное событие создается метод внтури описываемого виджета. Стоит упомянуть, что сигнал может передавать любую порцию информации: число, строка, список и т.д.. Если сигнал отправляет какие-либо данные, то в методе на реакцию данного сигнала должен передаваться аргумент(ы) для обработки передаваемой информации.

Пример использования механизма сигналов/слотов:

Как видно из примера, виджет sld генерирует сигнал valueChanged, информирующий об изменении позиции слайдера. В свою очередь, данный сигнал связан с методом display виджета lcd. В данном случае, valueChanged является сигналом и отсылает значение типа int, а display является методом-сигналом, в который передается значение типа int. Связывание сигнала и слота происходит с помощью метода сигнала connect, который имеется у любого сигнала Qt.

Для определения слота, следует создать метод у класса описываемого виджета и привязать нужный сигнал к новому слоту с помощью метода сигнала connect.

Пример определения слота:

Чтобы определить слот, который реагирует на сигналы, отправляющие какую-либо информацию, следует лишь добавить аргумент(ы).

Пример определения слота на сигнал, передающий значение типа int:

Виджет slider генерирует сигнал valueChanged при изменении слайдера. В свою очередь, данный сигнал связан с слотом/методом _handleChangeSlider, который принимает аргумент value типа int. При любом изменении слайдера вызывается метод _handleChangeSlider, который устанавливает текст метке label на значение ползунка слайдера. Стоит сказать, что метод метки label.setText принимает строковое значение, поэтому значение, отправляемое сигналом, числового типа int явно приводится к строковому типу str.

В документации библиотеки Qt к тому или иному классу виджета все сигналы находятся в секции Signals. Особое внимание стоит обращать на типы данных, которые возвращают сигналы.

Источник

Оцените статью