Создайте свой первый графический интерфейс на 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 3, поскольку он предлагает лучшую поддержку и интеграцию с GTK+ и Glade. В Linux и macOS Python обычно предустановлен.

Пользователи 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.

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

 sudo apt-get install glade 

В Федоре:

 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 

Для Федоры:

 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, чтобы гарантировать, что виртуальная среда может получить доступ к пакетам, которые устанавливает Brew, используйте:

 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+ version:", Gtk.get_major_version(), Gtk.get_minor_version())

Когда вы запустите этот скрипт, он выведет установленную версию GTK+. Если все идет хорошо, вы настроили среду разработки.

Создание простого приложения с графическим интерфейсом с помощью Glade Interface Designer и Python

Вы можете создать свое приложение с графическим интерфейсом в Glade Interface Designer и экспортировать макет в виде файла проекта. Затем вы сможете получить доступ к этому файлу проекта из своего кода Python.

Проектирование графического интерфейса с помощью Glade

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

 glade

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

Кнопка «Создать новый проект» в левом верхнем углу предоставляет пустой холст для дизайна вашего графического интерфейса. Glade предлагает широкий выбор виджетов на верхней панели, включая кнопки, текстовые поля и метки. Перетащите эти виджеты на холст, чтобы начать стилизовать свой графический интерфейс. Вы можете изменять размер и расположение виджетов в соответствии с вашими потребностями в дизайне.

Сначала выберите виджет GtkWindow в меню Toplevels:

На странице «Общие» в правой панели Glade вы увидите опцию идентификатора. Этот идентификатор представляет собой уникальное имя добавленного вами виджета. В этом примере присвойте идентификатор myMainWindow добавленному вами GtkWindow.

Теперь вы можете добавлять виджеты в созданное вами главное окно. Перейдите в раздел «Контейнеры» на верхней панели, выберите виджет GtkBox и перетащите его в рабочее пространство. Затем дайте ему идентификатор myMainBox.

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

Затем добавьте виджет управления в свой дизайн. Для этого перейдите в Control на верхней панели, выберите GtkButton в качестве примера и перетащите его в любое место GtkBox. Дайте ему идентификатор, myButton. При желании вы также можете изменить текст кнопки, используя вкладку «Общие» на правой панели.

GtkButton — это интерактивный виджет, поэтому вы можете определить для него обработчик Python и позже написать соответствующий код. Перейдите на вкладку «Сигналы» в правом меню и укажите обработчик сигнала по клику. В этом примере назовите его on_button_clicked.

Теперь вы можете сохранить свой дизайн графического интерфейса в виде файла проекта. Сохраните файл как 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 для разработки графического интерфейса Python

Использование GTK+ и Glade для разработки графического интерфейса Python дает очевидные преимущества. Обычно создание графического интерфейса занимает много времени и усилий. Но с помощью Glade Interface Designer вы можете ускорить этот процесс. Glade также предлагает широкий спектр виджетов, каждый из которых так же прост в использовании, как и кнопка в примере.

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