Створіть свій перший графічний інтерфейс на Python за допомогою Glade і GTK+

Основні моменти

  • Розробники на Python можуть використовувати GTK+ і Glade для створення інтуїтивно зрозумілих графічних інтерфейсів, застосовуючи візуальний підхід.
  • Налаштування робочого середовища для цих цілей вимагає інсталяції Python, GTK+, Glade та PyGObject.
  • Використання GTK+ і Glade для розробки графічних інтерфейсів на Python сприяє прискоренню процесу та відокремлює дизайн інтерфейсу від програмного коду.

Python — це гнучка мова, чудово підходяща для обробки даних і веб-розробки. Також вона є відмінним вибором для створення програм із графічним інтерфейсом. GTK+ і Glade полегшують розробку простих кросплатформних застосунків.

Конструктор інтерфейсів GTK+ і Glade для програмістів Python

GTK+ (GIMP Toolkit) і Glade Interface Designer являють собою потужне поєднання для Python-розробників, які прагнуть створювати інтуїтивно зрозумілі та привабливі графічні інтерфейси.

GTK+ є мультиплатформним інструментарієм, призначеним для розробки графічних інтерфейсів. Він сумісний з різними операційними системами, такими як Linux, Windows і macOS.

Glade Interface Designer, інструмент, що доповнює GTK+, дозволяє створювати графічний інтерфейс користувача без необхідності написання коду для макета. Ви можете використовувати його для розробки графічного інтерфейсу в середовищі WYSIWYG за допомогою перетягування елементів та декількох кліків мишею.

Налаштування вашого Python-середовища для розробки з GTK+ і Glade

Правильне налаштування середовища є важливим першим кроком для забезпечення ефективного та безперебійного процесу розробки.

1. Встановлення Python

Почніть з перевірки наявності Python у вашій системі. У прикладах, які ви розглянете, використовується код Python 3, оскільки він забезпечує кращу підтримку та інтеграцію з GTK+ і Glade. Зазвичай Python вже встановлено на Linux і macOS.

Користувачі Windows можуть завантажити Python з офіційного сайту Python.

2. Встановлення GTK+

GTK+ можна встановити через менеджер пакетів.

Для систем Linux на базі Ubuntu та Debian скористайтеся командою:

sudo apt-get install libgtk-3-dev

Для Fedora та подібних:

sudo dnf install gtk3-devel

На macOS за допомогою Homebrew:

brew install gtk+3

Користувачі Windows можуть завантажити GTK+ зі сторінки завантаження GTK. Якщо у вас встановлено MSYS2, можна відкрити командний рядок MSYS2 і виконати команду:

pacman -S mingw-w64-x86_64-python-gobject

3. Встановлення Glade

Glade також можна встановити через командний рядок.

Для дистрибутивів Linux на базі Ubuntu і Debian:

sudo apt-get install glade

Для Fedora:

sudo dnf install glade

Користувачі macOS можуть скористатися Homebrew:

brew install glade

Для користувачів Windows можна використовувати таку команду в MSYS2:

pacman -S mingw-w64-x86_64-glade

4. Python-прив’язки для GTK+

Інсталюйте PyGObject для інтеграції GTK+ з Python. Використовуйте наступну команду:

pip install PyGObject

Якщо під час інсталяції PyGObject виникає помилка, наприклад “Колесо збірки для pycairo (pyproject.toml) не запущено”, потрібно також встановити пакет cairo.

Для дистрибутивів Linux на базі Ubuntu і Debian:

sudo apt-get install libcairo2-dev

Для Fedora:

sudo yum install cairo-devel

На macOS:

brew install pygobject3

5. Налаштування віртуального середовища (необов’язково)

Рекомендовано використовувати віртуальне середовище для ваших Python-проектів. Це ізолює залежності проекту. Створіть та активуйте віртуальне середовище в Linux за допомогою команд терміналу:

python -m venv myenv
source myenv/bin/activate

У Windows використовуйте:

python -m venv myenv
myenv\Scripts\activate

На macOS для забезпечення доступу віртуального середовища до встановлених пакетів, використовуйте:

python -m venv --system-site-packages myenv
source myenv/bin/activate

6. Перевірка інсталяції

Для перевірки встановлення GTK+ і Glade, створіть простий Python-скрипт, що імпортує GTK:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
print("Версія GTK+:", Gtk.get_major_version(), Gtk.get_minor_version())

Запуск скрипту покаже встановлену версію GTK+. Якщо все гаразд, ваше середовище розробки налаштовано.

Створення простого GUI-застосунку за допомогою Glade Interface Designer та Python

Свій GUI-застосунок можна створити в Glade Interface Designer і експортувати макет як файл проекту. Потім можна отримати доступ до цього файлу проекту з Python-коду.

Проектування GUI з Glade

Інтерфейс Glade із підтримкою перетягування елементів дозволяє зосередитись на дизайні без занурення у базовий код. Запустіть Glade з меню програм або через командний рядок:

glade

З’явиться інтерфейс Glade, де можна розпочати створення макета GUI.

Кнопка “Створити новий проект” у верхньому лівому куті створює порожнє полотно для дизайну графічного інтерфейсу. Glade надає різноманітні віджети на верхній панелі, такі як кнопки, текстові поля та мітки. Перетягніть їх на полотно, щоб розпочати стилізацію GUI. Розміри та розташування віджетів можна змінювати відповідно до потреб.

Спочатку оберіть віджет GtkWindow в меню Toplevels:

На сторінці “Загальні” на правій панелі Glade ви побачите опцію ідентифікатора. Ідентифікатор є унікальною назвою віджета. Для цього прикладу призначте ідентифікатор myMainWindow віджету GtkWindow, який ви додали.

Тепер можна додавати віджети до головного вікна. Перейдіть до “Контейнерів” на верхній панелі, оберіть віджет GtkBox і перетягніть його на робочу область. Присвойте йому ідентифікатор myMainBox.

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

Далі додайте до дизайну віджет керування. Для цього перейдіть до “Control” на верхній панелі, оберіть GtkButton і перетягніть його в GtkBox. Присвойте йому ID myButton. За потреби можна змінити текст кнопки на вкладці “Загальні” на правій панелі.

GtkButton — це віджет, що реагує на натискання, тому можна визначити для нього обробник Python і написати відповідний код. Перейдіть на вкладку “Сигнали” в меню праворуч і вкажіть обробник для сигналу “натиснуто”. Назвіть його on_button_clicked.

Тепер можна зберегти дизайн GUI як файл проекту, наприклад, myDesign.glade.

Використання файлу дизайну Glade з Python-коду

Створіть файл app.py в тому ж каталозі, де знаходиться файл myDesign.glade. Додайте до нього наступний код:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk

class MyApp:
def __init__(self):
self.builder = Gtk.Builder()
self.builder.add_from_file("myDesign.glade")
self.window = self.builder.get_object("myMainWindow")
self.window.connect("destroy", Gtk.main_quit)
self.button = self.builder.get_object("myButton")
self.button.connect("clicked", self.on_button_clicked)
self.color_toggle = False

def on_button_clicked(self, widget):
color = "#FF0000" if self.color_toggle else "#00FF00"
self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
self.color_toggle = not self.color_toggle

def run(self):
self.window.show_all()
Gtk.main()

if __name__ == "__main__":
app = MyApp()
app.run()

Цей код змінюватиме колір фону вікна кожного разу, коли ви натискаєте кнопку. Зверніть увагу на виклики self.builder.get_object(), які отримують ідентифікатори віджетів, визначених у Glade.

Запустіть скрипт Python, щоб побачити результат:

python3 app.py

Переваги використання GTK+ і Glade для розробки GUI на Python

Використання GTK+ і Glade для розробки графічних інтерфейсів на Python має явні переваги. Створення GUI зазвичай вимагає значних витрат часу та зусиль. За допомогою Glade Interface Designer ви можете прискорити процес. Glade пропонує великий вибір віджетів, кожен з яких простий у використанні.

Ключовою перевагою Glade є можливість зберігати графічний інтерфейс окремо від коду. Це спрощує підтримку та оновлення GUI. Такий підхід забезпечує більш чистий та організований код, що відповідає сучасній практиці програмування.