Поиск по сайту:

Создание дополнительных приложений с графическим интерфейсом пользователя с помощью инструмента PyGobject в Linux — часть 2


Мы продолжаем серию о создании приложений с графическим интерфейсом для рабочего стола Linux с использованием PyGObject. Это вторая часть серии, и сегодня мы поговорим о создании более функциональных приложений с использованием некоторых расширенных виджетов.

Требования

  1. Создание приложений с графическим интерфейсом под Linux с использованием PyGObject – часть 1

В предыдущей статье мы говорили, что существует два способа создания приложений с графическим интерфейсом с использованием PyGObject: только код и дизайнерский способ Glade. , но с этого момента мы будем объяснять только способ дизайнера Glade, поскольку для большинства пользователей он намного проще: вы можете изучить способ, основанный только на коде, самостоятельно, используя python-gtk3-tutorial.

Создание расширенных приложений с графическим интерфейсом в Linux

1. Приступим к программированию! Откройте дизайнер Glade из меню приложений.

2. Нажмите кнопку «Окно» на левой боковой панели, чтобы создать новое.

3. Нажмите на виджет «Box» и отпустите его в пустом окне.

4. Вам будет предложено ввести желаемое количество полей, сделайте это 3.

И вы увидите, что поля созданы. Эти поля важны для нас, чтобы мы могли добавить в окно больше, чем просто 1 виджет.

5. Теперь нажмите на виджет поле и измените тип ориентации с вертикальной на горизонтальную.

6. Чтобы создать простую программу, добавьте «Текстовый ввод», «Текст в поле со списком» и «Кнопку ” для каждого из полей, у вас должно получиться что-то вроде этого.

7. Теперь нажмите виджет «window1» на правой боковой панели и измените его положение на «Центр».

Прокрутите вниз до раздела «Внешний вид». И добавьте заголовок окна «Моя программа».

8. Вы также можете выбрать значок для окна, щелкнув поле «Имя значка».

9. Вы также можете изменить высоту и ширину по умолчанию для приложения. После всего этого у вас должно получиться что-то вроде этого.

В любой программе одной из самых важных задач является создание окна «О программе». Для этого сначала нам нужно заменить обычную кнопку, которую мы создали ранее, на стандартную кнопку, посмотрите на изображение.

10. Теперь нам придется изменить некоторые сигналы, чтобы выполнять определенные действия при возникновении какого-либо события в наших виджетах. Нажмите на виджет ввод текста, переключитесь на вкладку «Сигналы» на правой боковой панели, найдите «активирован» и измените его обработчик на «enter_button_clicked», сигнал «активирован» — это сигнал по умолчанию, который отправляется при нажатии клавиши «Enter» при фокусировке на тексте. виджет входа.

Нам придется добавить еще один обработчик сигнала «clicked» для нашего виджета «О кнопке», щелкнуть по нему и изменить сигнал «clicked» на «button_is_clicked». “.

11. Перейдите на вкладку «Общие» и отметьте «Имеет фокус» следующим образом (чтобы задать фокус по умолчанию для кнопки «О программе»). вместо записи).

12. Теперь на левой боковой панели создайте новое окно «О диалоге».

И вы заметите, что создано окно «О диалоге».

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

После выполнения вышеуказанных настроек вы получите следующую информацию об Window.

В приведенном выше окне вы заметите пустое место, но вы можете удалить его, уменьшив количество полей с 3 до 2, или добавить к нему любой виджет, если хотите.

13. Теперь сохраните файл в своей домашней папке под именем «ui.glade», откройте текстовый редактор и введите в него следующий код.


#!/usr/bin/python
-*- coding: utf-8 -*-

from gi.repository import Gtk
class Handler:

    def button_is_clicked(self, button):
        ## The ".run()" method is used to launch the about window.
         ouraboutwindow.run()
        ## This is just a workaround to enable closing the about window.
         ouraboutwindow.hide()

    def enter_button_clicked(self, button):
        ## The ".get_text()" method is used to grab the text from the entry box. The "get_active_text()" method is used to get the selected item from the Combo Box Text widget, here, we merged both texts together".
         print ourentry.get_text() + ourcomboboxtext.get_active_text()

## Nothing new here.. We just imported the 'ui.glade' file.
builder = Gtk.Builder()
builder.add_from_file("ui.glade")
builder.connect_signals(Handler())

ournewbutton = builder.get_object("button1")

window = builder.get_object("window1")

## Here we imported the Combo Box widget in order to add some change on it.
ourcomboboxtext = builder.get_object("comboboxtext1")

## Here we defined a list called 'default_text' which will contain all the possible items in the Combo Box Text widget.
default_text = [" World ", " Earth ", " All "]

## This is a for loop that adds every single item of the 'default_text' list to the Combo Box Text widget using the '.append_text()' method.
for x in default_text:
  ourcomboboxtext.append_text(x)

## The '.set.active(n)' method is used to set the default item in the Combo Box Text widget, while n = the index of that item.
ourcomboboxtext.set_active(0)
ourentry = builder.get_object("entry1")

## This line doesn't need an explanation :D
ourentry.set_max_length(15)

## Nor this do.
ourentry.set_placeholder_text("Enter A Text Here..")

## We just imported the about window here to the 'ouraboutwindow' global variable.
ouraboutwindow = builder.get_object("aboutdialog1")

## Give that developer a cookie !
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main

Сохраните файл в своем домашнем каталоге под этим именем «myprogram.py», дайте ему разрешение на выполнение и запустите его.

chmod 755 myprogram.py
./myprogram.py
This is what you will get, after running above script.

Введите текст в поле ввода, нажмите клавишу «Enter» на клавиатуре, и вы заметите, что предложение напечатано в оболочке.

На данный момент это все, это не законченное приложение, но я просто хотел показать вам, как связывать вещи вместе с помощью PyGObject. Вы можете просмотреть все методы для всех виджетов GTK на странице gtkobjects.

Просто изучите методы, создайте виджеты с помощью Glade и подключите сигналы с помощью файла Python. Вот и все! Это совсем не сложно, мой друг.

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