Как сделать красивый дизайн pyqt5

Добавил пользователь Евгений Кузнецов
Обновлено: 10.09.2024

Перевод статьи markdrozdov “13 Python GUI Libraries”.

Python

Python это высокоуровневый язык программирования, он используется как язык общего назначения. Этот язык был создан Гвидо ван Россумом и впервые выпущен в 1991 году. Философия проектирования Python фокусируется на читаемости кода. Для этой цели в языке используется значительное количество пробелов.

Python предоставляет конструкции, позволяющие программировать к в малых, так и в больших масштабах. У этого языка очень большая стандартная библиотека. Он относится к языка с динамической типизацией. Также в нем есть автоматическое управление памятью.

Python поддерживает множество парадигм программирования, включая:

  • объектно-ориентированную(ООП);
  • императивную;
  • функциональную;
  • процедурную.

Графический интерфейс пользователя (GUI)

GUI это человеко-компьютерный интерфейс. Другими словами, это способ, с помощью которого люди могут взаимодействовать с компьютерами.

Он использует окна, значки, меню. Манипулировать GUI можно как с помощью мышки, так и с помощью клавиатуры.

GUI-библиотека

GUI-библиотека содержит виджеты. Виджеты это наборы графических элементов управления.

При создании GUI программы обычно используется каскадный способ. Графические элементы управления добавляются поверх друг друга.

Python GUI

Когда вы пишете приложение с помощью Python, вам для этого понадобится использовать GUI.

Существует много вариантов Python GUI. Есть больше 30 кросс-платформенных фреймворков для программирования GUI на Python. 13 из них перечислены и кратко охарактеризованы ниже. (Возможно, вам будут интересны и другие библиотеки Python, о которых мы писали ранее).

1. Tkinter

Tkinter это набор инструментов, который может формировать GUI с помощью Python. Он позволяет вам запускать сценарии на Python в GUI-формате. Ссылка ведет на страницу с руководством по Tkinter.

2. Flexx

Многие GUI-библиотеки Python основаны на библиотеках, написанных на других языках, таких как C ++. Например, wxWidgets и libavg. Flexx создана на Python. Для отображения GUI использует веб-технологию.

3. CEF Python

Этот фреймворк нацелен на Windows, MAC OS и Linux. Основан на Google Chromium. Основное внимание в нем уделяется облегчению использования встроенного браузера в сторонних приложениях.

4. Dabo

Цель этого фреймворка – WxPython. Это трехуровневый фреймворк для разработки кросс-платформенных приложений.

5. Kivy

Kivy основан на OpenGL ES 2. У него есть собственный multi-touch для каждой отдельной платформы. Это событийно-ориентированный фреймворк, который прекрасно подходит для разработки игр.

6. Pyforms

Pyforms это фреймворк Python 2.7/3.x для разных окружений, используемый для разработки GUI приложения. В нем поощряется повторное использование кода.

7. PyGObject

С помощью PyGObject вы можете писать на Python приложения для проекта GNOME. Также можно писать приложения на Python, использующие GTK+.

8. PyQt

Qt это кросс-платформенный фреймворк. Он написан на С++. Это очень полная библиотека, включающая много инструментов и API. Широко используется во многих отраслях. Охватывает множество платформ.

9. PySide

Обёртка для Qt. PySide и PyQt отличаются тем, что последний является коммерчески доступным.

10. PyGUI

PyGUI предназначен для платформ Unix, Macintosh и Windows. Фокус этого MVC-фреймворка заключается в том, чтобы вписываться в экосистему Python с максимальной легкостью.

11. libavg

Это сторонняя библиотека, написанная на С++. Обладает следующими особенностями:

  • показ элементов в форме переменных Python;
  • система управления событиями;
  • таймеры;
  • поддержка логов.

12. PyGTK | PyGObject

Этот MVC-фреймворк разработан Грегом Эвингом из университета Кентербери (Новая Зеландия). Его главный фокус – как можно более простая адаптация к экосистеме Python.

13. wxPython

Обертка кросс-платформенного GUI для Python на основе wxWidgets. Написана на С++.

Заключение

Приведенный выше список GUI-фреймворков покрывает большую часть нужд разработчика. Выбор зависит от ваших потребностей.

Будучи Python-разработчиком, вы должны знать топ-5 GUI библиотек, который помогут добавить графический интерфейс в приложение.

Что такое GUI?

GUI (графический интерфейс пользователя) — это форма интерфейса, которая позволяет пользователю взаимодействовать с электронным устройством с помощью графических иконок и аудио-индикаторов вместо текстовых интерфейсов. GUI появился в ответ на кажущуюся крутой кривую изучения CLI (интерфейса командной строки), которая требует команд, набираемых с клавиатуры.

GUI-фреймворки легко доступны — они бесплатны и имеют открытый исходный код. В Python есть широкий спектр вариантов: от кроссплатформенных до заточенных под конкретную платформу.

Лучшие GUI библиотеки Python 2020

Kyvi — это бесплатная библиотека Python с открытым исходным кодом. Она используется для разработки мобильных приложений и других приложений широкого назначения с естественным пользовательским интерфейсом. Распространяется по лицензии MIT и может работать на:

Лучшие GUI библиотеки Python 2020

PyQT — одна из самых любимых кроссплатформенных Python-библиотек, реализующих библиотеку Qt (принадлежит Nokia) из одноименного фреймворка для разработки приложений. Сейчас PyQT доступна на Unix/Linux, Windows, macOS и Sharp Zaurus. Она объединяет лучшее из Python и Qt. И только разработчик решает, как создавать программу: с помощью кода или Qt Designer для дизайна визуальных элементов.

PyQT доступна как по коммерческой, так и по лицензии GPL. Хотя некоторые функции и недоступны в бесплатной версии, если приложение имеет открытый исходный код, ее можно свободно использовать.

Tkinter

Лучшие GUI библиотеки Python 2020

Tkinter — связка Python с набором GUI-инструментов Tk. Это стандартный интерфейс-Python. Он доступен на Linux, Windows и macOS с установленными Python. Имя Tkinter происходит от Tk interface.

PySide

Лучшие GUI библиотеки Python 2020

PySide — это библиотека с открытым исходным кодом, которая также предлагается связь с Qt. Qt – это кроссплатформенные приложение и UI-фреймворк, которые позволяют разработчикам писать и разворачивать приложения на разных ОС без переписывания исходного кода.

Объединяя возможности Qt и Python, PySide предоставляет богатство фреймворка Qt для разработчиков, которые пишут ПО на Python и представляет первоклассную платформу для разработчиков на всех основных системах.

WxPython

Лучшие GUI библиотеки Python 2020

Выводы

Хорошее знание любого из GUI-фреймворков очень ценно. Вы сможете создавать приложения с полноценным графическим интерфейсом.

91b2a44fee [Udemy] [YouRa Allakhverdov] Python 3 разработка GUI на PyQt5

Материал может быть удален по запросу правообладателя!

Описание курса:

Программисты Python — одни из самых высокооплачиваемых разработчиков на планете. Многие программисты пытаются получить преимущество в качестве разработчиков Python, чтобы выделиться из толпы.

Один из лучших способов сделать это — создать на Python приложения, которые являются кроссплатформенными и имеют графический пользовательский интерфейс (GUI).

Этот курс позволит тебе добавить программирование графического интерфейса с использованием PyQt5 в свой набор инструментов.

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

Высоким спросом пользуются программисты, имеющие опыт работы с Qt и, соответственно, с PyQt.

Последняя версия PyQt — 5, поэтому в этом курсе основное внимание уделяется этой версии — PyQt5.

Если ты хочешь изучить программирование графического интерфейса пользователя Python и, в частности, Qt и PyQt5, то этот курс для тебя.

Научись разрабатывать современные графические пользовательские интерфейсы на Python, которые имеют внешний вид операционной системы, будь то Windows, MacOS или Linux. Узнай, когда и как использовать текстовые поля, поля со списком, диалоговые окна файлов, средства выбора даты и цвета, средства просмотра веб-страниц, изображения и многое другое для создания современных приложений с меню, панелями инструментов и окнами с возможностью изменения размера.

Когда графический интерфейс будет готов, узнай, как заполнить его данными из базы данных SQL и позволить пользователям изменять эти данные и сохранять свои изменения в полнофункциональных приложениях. Узнай, как создавать многопоточные приложения, чтобы обработка данных не мешала пользовательскому интерфейсу.

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

Руководство по PyQt5 для начинающих

Программирование и разработка

PyQt5 — это модуль Python для разработки настольных приложений с графическим интерфейсом пользователя. Он доступен для нескольких платформ, таких как Windows, Mac, Linux, iOS и Android. Python предлагает несколько модулей, которые фактически поддерживают разработку графического интерфейса, например Tkinter, wxPython, PySide2 и другие. Однако PyQt5 использует более 1000 классов; на самом деле PyQt5 — это огромный модуль! Кроме того, PyQt5 включает Qt Designer, конструктор графического пользовательского интерфейса, который еще больше упрощает создание графического интерфейса. Его можно использовать для создания чего угодно, от медиаплееров до веб-браузеров. В этом руководстве мы изучим основы модуля PyQt5.

Сначала установим PyQt5

pip install pyqt5

pip install pyqt5-tools

ШАГ 1: СОЗДАНИЕ ПУСТОГО ОКНА

Первый шаг в создании чего-либо — установка пустого окна. Само пустое окно требует нескольких строк кода, так что давайте посмотрим на это.

from PyQt5 import QtWidgets

from PyQt5. QtWidgets import QApplication , QMainWindow

import sys

from PyQt5 import QtGui

class window ( QtWidgets. QWidget ) :

def __init__ ( self ) :

super ( ) . __init__ ( )

Задайте геометрию окна с помощью метода setGeometry (), который принимает четыре аргумента — начальную позицию по оси x, начальную позицию по оси y (другими словами, где на экране появляется верхний левый угол), ширину и высоту окна. окно.

self . setGeometry ( 350 , 100 , 800 , 600 )

Задайте заголовок окна с помощью метода setWindowTitle ().

Вы можете установить значок с помощью setWindowIcon (). Обратите внимание, что размер значка должен составлять 64 на 64 пикселя.

Каждому файлу PyQt5 требуется следующая строка, которая принимает в качестве аргумента sys.argv.

application = QApplication ( sys . argv )

Затем создайте экземпляр класса, который мы создали выше.

Для выхода из окна по нажатию кнопки X нам понадобится sys.exit (application.exec ()).

Этот код создаст пустое окно. Код в целом будет выглядеть так:

ШАГ 2: ВВОДНАЯ ПАНЕЛЬ

Далее давайте создадим панель ввода. Панель ввода — это место, где пользователи могут добавлять текст, который мы можем извлечь. Полосы ввода создаются с помощью QWidgets.QLineEdit (). Очевидно, мы задаем его геометрию с помощью метода setGeometry ().

def initUI ( self ) :

self . input_bar = QtWidgets. QLineEdit ( self )

self . input_bar . setGeometry ( 150 , 250 , 500 , 40 )

Имейте в виду; вам все равно нужно активировать функцию в методе __init__ следующим образом:

Полный код на этом этапе будет выглядеть так:

ШАГ 3: СОЗДАНИЕ КНОПОК

Теперь давайте добавим несколько кнопок на пустой холст. Итак, напишем код для кнопки. Для кнопки мы используем QtWidgets.QPushButton (). Как обычно, мы можем задать его геометрию с помощью метода setGeometry ().

Установите значок с помощью метода setIcon ().

Установите стиль текста с помощью метода setStyleSheet (). Вы можете, среди прочего, изменить цвет, толщину и размер шрифта.

Чтобы кнопка выполняла какие-либо действия при нажатии, вам необходимо сообщить кнопке, что при нажатии на нее необходимо активировать функцию. Это делается с помощью clicked.connect (), где активируемая функция передается в качестве аргумента. В моем случае это:

Затем мы определяем функцию, которая будет вызываться или активироваться при нажатии кнопки. А пока просто распечатаем его на консоли.

def button_clicked ( self ) :
url_value = self . input_bar . text ( )

print ( url_value )

Теперь код в целом будет выглядеть так:

ШАГ 4: СОЗДАНИЕ ЯРЛЫКОВ

Теперь давайте изменим команду нажатия кнопки с помощью QLabels. QLabels используются для добавления текста. Мы добавляем это в def initUI (self).

Устанавливаем текст на этикетке с помощью метода setText ().

Мы устанавливаем шрифт, размер и вес с помощью setStyleSheet (). Мы устанавливаем шрифт, размер и вес с помощью setStyleSheet ().

И, наконец, обновляем все с помощью метода update ().

Это создает следующее:

Теперь мы можем изменить содержимое в функции button_clicked ().

Мы можем получить то, что пользователь пишет в текстовой строке, используя метод text ().

Затем мы можем изменить метку при нажатии кнопки с помощью метода setText () и разместить их в нужном месте с помощью метода setGeometry ().

self . label . setText ( url_value )

self . label . setGeometry ( QtCore. QRect ( 200 , 80 , 500 , 100 ) )

Теперь код в целом будет выглядеть так:

ШАГ 5: QVBOXLAYOUT И QHBOXLAYOUT

Я не не т добавлять к QVBoxLayout или QHBoxLayout здесь, но вы можете, если вы хотите. QHBoxLayout расположит все по горизонтали, а QVBoxLayout расположит по вертикали. Если вы используете QHBoxLayout или QVBoxLayout, вы должны опустить метод setGeometry ().

Если бы вы хотели добавить его, вы бы написали следующее в def initUI (self). Сначала вы инициализируете макет с помощью QVBoxLayout ():

Затем вы добавляете в него нужные виджеты с помощью метода addWidget ().

self . design . addWidget ( self . label )

self . design . addWidget ( self . input_bar )

self . design . addWidget ( self . button1 )

Вы устанавливаете макет с помощью setLayout (), который принимает инициализированную переменную в качестве аргумента.

Мне это здесь не нужно, потому что я все настраиваю с помощью setGeometry (), поэтому я опущу это в своем коде. Однако, если вы хотите, чтобы это было в вашем коде, весь код будет выглядеть так:

application = QApplication(sys.argv)

ШАГ 6: ДИЗАЙНЕР QT

Что еще лучше с PyQt5, так это то, что он поставляется со своим собственным дизайнером. Дизайнер — это консоль, на которой вы можете создать желаемый графический интерфейс, а программа выбрасывает для него код Python. Qt Designer поставляется в пакете pyqt5-tools, поэтому его необходимо установить, чтобы он работал. В конструкторе Qt вы можете размещать кнопки, ползунки и т.д. После того, как вы разместите их, вы можете сохранить файл как файл.ui.

После того, как файл сохранен как файл.ui, вам все равно нужно

После того, как файл сохранен как файл.ui, вам все равно нужно преобразовать его в файл.py, чтобы PyCharm мог его отобразить. Для этого откройте терминал или cmd и введите:

Я сохранил свой файл как saved_file_name.ui. Терминал выдаст файл python и назовет его так, как вы просили. Затем вы можете открыть файл.py в PyCharm и добавить к нему логику.

Помните, что, хотя мы можем использовать конструктор для разработки макета графического интерфейса пользователя, нам все же необходимо добавить логику в код, что делается исключительно с помощью кода Python, а не дизайнера. К сожалению, Qt Designer не добавляет логики в код!

В этом руководстве мы узнали об основах PyQt5 и о том, как использовать конструктор Qt. Мы узнали, что можем создавать пустые экраны, добавлять кнопки с помощью QPushButton, добавлять панели ввода с помощью QLineEdit, добавлять текст с помощью QLabels и упорядочивать все с помощью QVBoxLayout / QHBoxLayout. Фактически, PyQt5 — это очень большой модуль, используемый для создания множества настольных приложений с графическим интерфейсом пользователя. Хотя в python есть много модулей для приложений с графическим интерфейсом, большинство людей выбирают PyQt5, потому что он предлагает огромный выбор дизайнов и дизайнера для облегчения задач. Действительно, PyQt5 стоит изучить!

Создание приложений с графическим интерфейсом пользователя с использованием инструмента конструктора PYQT сравнительно менее трудоемко, чем кодирование виджетов. Это один из самых быстрых и простых способов создания GUI.

Обычный подход заключается в написании кода даже для виджетов, а также для функциональности. Но используя Qt-дизайнер, можно просто перетаскивать виджеты, что очень полезно при разработке крупномасштабных приложений.

Установка PyQt5:

Давайте создадим форму регистрации, используя инструмент дизайнера QT. Для создания форм, кнопок, текстовых полей и т. Д. Не требуется код! Это скорее среда перетаскивания. Таким образом, использование PyQt намного проще, чем Tkinter.


Откройте Qt Designer, затем выберите Главное окно и нажмите Создать . Установите желаемый размер окна, перетаскивая края окна.


Для создания макета формы Singup необходимы следующие виджеты:

  1. Три поля для редактирования текста.
  2. Одна кнопка
  3. Четыре текстовые метки (SignId Banner, метка UserName, метка Password и Confirm Password).

Нужно найти эти виджеты в Widget Tool Box . Просто перетащите нужные виджеты в главное окно или в окно, над которым вы работаете.



Чтобы получить предварительный просмотр окна, нажмите Ctrl + R

Сохраните файл:
Файл будет сохранен с расширением .ui . Чтобы преобразовать этот файл (расширение .ui ) в файл Python (расширение .py ), выполните следующие действия:

Читайте также: