Python

Как да създадете просто приложение в Python и GTK3

Как да създадете просто приложение в Python и GTK3
Тази статия ще обясни как да създадете графично приложение „Hello World” в Linux, използвайки езика за програмиране Python 3 и GTK3 GUI рамката. Всички мостри на кода в урока са тествани с Python 3.8.6 и GTK 3.24.23 на Ubuntu 20.10.

Инсталирайте необходимите пакети

За да създадете приложение, използващо Python 3 и GTK3, трябва да инсталирате обвързвания на Python за библиотеки на GObject. Това може да стане чрез инсталиране на пакета PyGObject, включен в хранилищата на почти всички основни дистрибуции на Linux. За да инсталирате тези зависимости в Ubuntu, можете да използвате командата по-долу:

$ sudo apt инсталира python3 python3-gi

Можете също да компилирате PyGObject от изходния код, наличен тук.

Пълен код на приложението Hello World

Пълна извадка от код на приложение Hello World, написано на Python 3 и GTK3, можете да намерите по-долу. Това приложение изпраща „Hello World !!”Известие на работния плот при щракване на бутон.

внос gi
gi.require_version ("Gtk", "3.0 ")
gi.require_version ('Уведоми', '0.7 ')
от gi.импортиране на хранилище Gtk
от gi.импортиране на хранилище Извести
клас MyWindow (Gtk.Прозорец):
def __init __ (самостоятелно):
Gtk.Прозорец.__init __ (self, title = "Hello World")
Gtk.Прозорец.set_default_size (самостоятелно, 640, 480)
Уведомете.init ("Обикновено приложение GTK3")
себе си.кутия = Gtk.Кутия (интервал = 6)
себе си.добави (самостоятелно.кутия)
себе си.бутон = Gtk.Бутон (етикет = "Щракнете тук")
себе си.бутон.set_halign (Gtk.Подравнете.ЦЕНТЪР)
себе си.бутон.set_valign (Gtk.Подравнете.ЦЕНТЪР)
себе си.бутон.свързване ("щракна", самостоятелно.on_button_clicked)
себе си.кутия.pack_start (самостоятелно.бутон, True, True, 0)
def on_button_clicked (самостоятелно, джаджа):
n = Уведомяване.уведомление.ново ("Обикновено приложение GTK3", "Hello World !!")
н.покажи ()
win = MyWindow ()
печеля.свързване ("унищожаване", Gtk.main_quit)
печеля.Покажи всичко()
Gtk.главен ()

Екранна снимка на крайния резултат.

Известието на работния плот, което пристига при щракване върху бутона „Щракнете тук“:

Обяснение стъпка по стъпка

Различни оператори „импортиране“ в първите няколко реда на кода импортират необходимите модули, необходими за приложението да работи. Тези модули предоставят множество класове и функции, които могат да се използват в приложението. - Ги.изисквания_версия ”се уверяват, че само необходимата версия на библиотеката се импортира, за да се избегнат проблеми със съвместимостта и сривове. В този случай „3.0 ”се използва, за да се увери, че в приложението се използва библиотека GTK3, а не GTK2 или друга версия на GTK.

Подобно на класа GTK, класът Notify също се импортира, като се посочи необходимата му версия (0.7 е последната версия към момента на писане на тази статия). Този клас ще бъде използван по-късно в приложението.

внос gi
gi.require_version ("Gtk", "3.0 ")
gi.require_version ('Уведоми', '0.7 ')
от gi.импортиране на хранилище Gtk
от gi.импортиране на хранилище Извести

Следващият подклас на оператора „Gtk.Клас Window “като клас“ MyWindow ”. „Gtk.Прозорец.__init__ ”методът инициализира конструктора на супер класа (Gtk.Window), от който е създаден подклас (MyWindow). В конструктора заглавието на приложението също е зададено като „Hello World”, като се използва аргументът „title”. Геометрията по подразбиране на прозореца на приложението също се задава чрез задаване на ширина и височина в метода “set_default_size”.

клас MyWindow (Gtk.Прозорец):
def __init __ (самостоятелно):
Gtk.Прозорец.__init __ (self, title = "Hello World")
Gtk.Прозорец.set_default_size (самостоятелно, 640, 480)

След това методът „init“ от класа Notify се използва за инициализиране на библиотеката „libnotify“ чрез предоставяне на заглавие на приложение. Без инициализация известията няма да се изпращат и показват на работния плот на Linux.

Уведомете.init ("Обикновено приложение GTK3")

Изразът “box” добавя празен контейнер за оформление към основния прозорец на приложението. Този контейнер е като празно платно, където могат да се поставят произволен брой джаджи. „Интервал“ се отнася до пространството между джаджи в „пикселните“ единици.

себе си.кутия = Gtk.Кутия (интервал = 6)
себе си.добави (самостоятелно.кутия)

Създава се нова джаджа за бутони „Щракнете тук“ с помощта на „Gtk.Бутон ”метод. След това се подравнява към хоризонтални и вертикални центрове на оформлението на родителското поле, използвайки методите “set_halign” и “set_valign”. Бутонът е свързан към сигнала „щракване“, така че при всяко натискане на бутона може да се извика методът за обратно извикване „on_button_clicked“. И накрая, приспособлението за бутони се вмъква отляво по хоризонталната ос към оформлението на кутията, като се използва „полето.pack_start ”метод. Този метод отнема четири аргумента: обектът на приспособлението, който трябва да бъде добавен, булев за разширяване на приспособлението, булев за попълване на приспособлението и запълване между добавените и други съседни приспособления.

себе си.бутон = Gtk.Бутон (етикет = "Щракнете тук")
себе си.бутон.set_halign (Gtk.Подравнете.ЦЕНТЪР)
себе си.бутон.set_valign (Gtk.Подравнете.ЦЕНТЪР)
себе си.бутон.свързване ("щракна", самостоятелно.on_button_clicked)
себе си.кутия.pack_start (самостоятелно.бутон, True, True, 0)

Методът „on_button_click“ се извиква при всяко натискане на бутона „Щракнете тук“. Създава се ново известие, използвайки метода “new”, който взема заглавие и съдържание на известието като аргументи. След това това известие се показва на работния плот, използвайки метода “show”. Можете също да преместите оператора „new“ в основния конструктор, за да избегнете пресъздаването на известието при всяко натискане на бутона.

def on_button_clicked (самостоятелно, джаджа):
n = Уведомяване.уведомление.ново ("Обикновено приложение GTK3", "Hello World !!")
н.покажи ()

Следващите няколко изявления са за създаване, управление и показване на нов прозорец на приложението. Създава се нов екземпляр на клас „MyWindow“ и той е свързан за сигнал „унищожаване“, за да се гарантира, че приложението се затваря правилно, когато потребителят реши да излезе от приложението, като щракне върху бутона „x“. Методът "show_all" показва прозореца на приложението на вашия работен плот на Linux. И накрая, основният цикъл на приложение, отговорен за обработката на събития и сигнали, се изпълнява.

Заключение

GTK3 и Qt са едни от най-популярните GUI рамки, използвани за създаване на приложения, които се изпълняват в Linux. И двете рамки ви позволяват да пишете основна логика на езици C ++ и Python. Не можете да сбъркате, като изберете някой от тези набори от инструменти за следващия си проект за приложение на Linux.

Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...