Python gui windows linux

Python PyQt5: современные графические интерфейсы для Windows, MacOS и Linux

Python PyQt5: современные графические интерфейсы для Windows, MacOS и Linux

Python регулярно включают в разнообразные рейтинги лучших языков программирования благодаря большому сообществу и легко читаемому синтаксису. Более того, Python под силу создать современный графический пользовательский интерфейс — GUI — для обычных скриптов. В руководстве уделим внимание модулю для разработки GUI PyQt5 , но стоит также упомянуть аналоги: Tkinter и WxWidget .

Статья подойдет в том числе и начинающим программистам, поэтому, не теряя времени, приступаем!

Содержание руководства:

  1. Установка и настройка PyQt5.
  2. Основы PyQt5.
  3. Заголовок окна.
  4. События и кнопки.
  5. Поля ввода.
  6. Окна сообщений и всплывающие окна.
  7. Выводы.

1. Установка и настройка PyQt5

Скачайте и установите последнюю версию Python для вашей системы, а если Python уже на месте, то установите пакеты при помощи следующей команды (откройте командную строку, введите и нажмите Enter):

2. Основы PyQt5

Теперь на вашем компьютере сохранен пакет PyQt5 , поэтому давайте начнем с написания первого окна графического интерфейса. Откройте ваш любимый текстовый редактор или IDE и выполните приведенный ниже код:

# Построение Windows GUI import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle("Pyqt5 Tutorial") win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

Теперь разберем код окна интерфейса с заголовком сверху. Если обсуждать кратко, то в первую очередь импортируем PyQt5 и его классы, полезные в создании виджета GUI, а затем создаем функцию main() для реализации оконного интерфейса.

  • QMainWindow() — словно контейнер, содержащий все виджеты, такие как кнопки, текст, поле ввода и т. д.
  • SetGeometry() — один из методов QMainWindow() , устанавливает размер окна. Синтаксис: setGeometry(x, y, длина, ширина) .
  • SetWindowTitle() — устанавливает заголовок окна.
  • Win.show() — создает и отображает весь разработанный интерфейс.
  • Sys.exit(app.exec_()) — устанавливает, что конкретное окно не закроется без нажатия на кнопку с крестиком. Без этой строчки кода GUI-программа завершится через секунду после выполнения.
Читайте также:  Python получить дату сегодня

3. Заголовок окна

Label Text — это текст, отображаемый внутри окна. С написанием Label Text в PyQt5 вам поможет виджет Qlabel .

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle("Pyqt5 Tutorial") #Label Text label= QLabel(win) label.setText("Hi this is Pyqt5") label.move(100,100) win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

Если кратко, то вызываем метод Qlabel() и передаем в него переменную QMainWindow .

  • Метод SetText() устанавливает Label Text, в качестве аргумента принимает только строковые данные.
  • Метод Move(x, y) применяется для установки положения Label Text внутри окна.

4. События и кнопки

Кнопки — важная часть любого программного обеспечения, ведь именно кнопка определяет действие пользователя, а следовательно, и результат работы программы тоже. Для создания кнопок в PyQt5 придётся применить другой виджет под названием QtWidgets , выполните следующий код:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle("Pyqt5 Tutorial") #Button button = QtWidgets.QPushButton(win) button.setText("Hi! Click Me") button.move(100,100) win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

В коде вышеизложенного примера переменная QMainWindow передается в метод из Qwidget под названием QPushbutton . Далее разберем код примера по пунктам.

  • SetText() устанавливает название для кнопки, как можно увидеть на приведенном выше изображении.
  • Move() снова применяется для установки положения кнопки в окне по координатам на осях x и y.

Теперь пришел черед событийно-ориентированного программирования (Event-Driven-Programming)! Проще говоря, нужно определить действие для кнопки, то есть, если пользователь на нее нажмет, то что-то должно произойти. Ознакомьтесь со следующим кодом, а дальше рассмотрим подробные объяснения:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def click(): print("Hy Button is clicked!") def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle("Pyqt5 Tutorial") #Button Click button = QtWidgets.QPushButton(win) button.setText("Hi! Click Me") button.move(100,100) button.clicked.connect(click) win.show() sys.exit(app.exec_()) main()

Теперь в примере определяется не только главная функция по имени main() , но и функция по имени click() , передающаяся в качестве параметра для button.clicked.connect() в main() . Таким образом указывается конкретная функция, срабатывающая при нажатии на конкретную кнопку.

Читайте также:  Python get index numpy array

Запустив такой код и нажав на кнопку, вы увидите вывод на экране консоли. Дело за вами, что же написать внутри функции click() ! Протестируйте код на вашей операционной системе.

5. Поля ввода

Поля ввода также называются текстовыми полями — это области для пользовательского ввода информации. Для объявления поля ввода в PyQt5 применяется специальный виджет QlineEdit() , а в него, как обычно, передается в качестве параметра QMainWindow .

Посмотрите на следующий код и обратите внимание на его результат:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle("Pyqt5 Tutorial") #Entry Box / Text Box textbox = QtWidgets.QLineEdit(win) textbox.move(100, 100) textbox.resize(180,40) win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

  • Resize(width, height) изменяет размер виджета поля ввода.

6. Окна сообщений и всплывающие окна

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

Для создания окон сообщений в PyQt5 применяется виджет QMessageBox , он опять таки принимает QMainWindow в качестве параметра.

Проанализируйте следующий код:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle("Pyqt5 Tutorial") #Message Box msg = QtWidgets.QMessageBox(win) msg.setWindowTitle("Pyqt5 Alert") msg.setText("Message box in Pyqt5!") msg.exec_() win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

  • SetWindowTitle() устанавливает заголовок для окна сообщения.

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

msg = QtWidgets.QMessageBox(win)
msg.setWindowTitle("Pyqt5 Alert")
msg.setText("Message box in Pyqt5!")
msg.setIcon(QtWidgets.QMessageBox.Critical)
msg.exec_()

Результат выполнения программы:

Ниже приведен список допустимых для окон сообщений значков:

  • QMessageBox.Warning
  • QMessageBox.Critical
  • QMessageBox.Information
  • QMessageBox.Question

Выводы

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

Источник

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

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

Читайте также:  Убрать пустую строку питон

Что такое GUI?

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

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

Kyvi

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

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

PyQT

Лучшие 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

WxPython — это смесь из библиотеки классов WxWidgets (ранее — WxWindows) для C++ и Python. Ее можно найти здесь: https://www.wxpython.org/. А вот ее Wiki: https://wiki.wxpython.org/.

Выводы

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

Источник

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