Kreirajte naprednije GUI aplikacije pomoću alata PyGobject u Linuxu - 2. dio


Nastavljamo našu seriju o kreiranju GUI aplikacija pod Linux radnom površinom koristeći PyGObject. Ovo je drugi dio serije i danas ćemo govoriti o kreiranju funkcionalnijih aplikacija koristeći neke napredne widgete.

Zahtjevi

  1. Kreirajte GUI aplikacije pod Linuxom koristeći PyGObject – 1. dio

U prethodnom članku smo rekli da postoje dva načina za kreiranje GUI aplikacija koristeći PyGObject: samo-kod i Glade dizajnerski način , ali od sada ćemo samo objašnjavati Glade način dizajnera jer je mnogo lakši za većinu korisnika, možete sami naučiti način samo na kod koristeći python-gtk3-tutorial.

Kreiranje naprednih GUI aplikacija u Linuxu

1. Počnimo s programiranjem! Otvorite svoj Glade dizajner iz menija aplikacija.

2. Kliknite na dugme “Prozor ” na lijevoj bočnoj traci kako biste kreirali novi.

3. Kliknite na widget “Box” i pustite ga na praznom prozoru.

4. Od vas će biti zatraženo da unesete broj kutija koji želite, neka bude 3.

I vidjet ćete da su kutije kreirane, te kutije su nam važne kako bismo mogli dodati više od samo 1 widgeta u prozor.

5. Sada kliknite na box widget i promijenite tip orijentacije iz vertikalne u horizontalne.

6. Da biste kreirali jednostavan program, dodajte “Unos teksta”, “Tekst kombinovanog okvira” i “Dugme ” widgete za svaki od kutija, trebali biste imati nešto poput ovoga.

7. Sada kliknite na widget “window1” sa desne bočne trake i promijenite njegovu poziciju u “Centar”.

Pomaknite se prema dolje do odjeljka “Izgled ”.. I dodajte naslov za prozor “Moj program”.

8. Također možete odabrati ikonu za prozor klikom na okvir “Naziv ikone”.

9. Također možete promijeniti zadanu visinu & širinu za aplikaciju. Nakon svega toga, trebali biste imati nešto poput ovoga.

U svakom programu, jedna od najvažnijih stvari je kreiranje prozora “O ”, da bismo to učinili, prvo ćemo morati promijeniti normalno dugme koje smo prethodno kreirali u dugme za zalihe, pogledajte sliku.

10. Sada ćemo morati modificirati neke signale kako bismo pokrenuli određene radnje kada se bilo koji događaj dogodi na našim widgetima. Kliknite na widget unos teksta, prebacite se na karticu “Signali ” na desnoj bočnoj traci, potražite “aktivirano ” i promijenite njegov rukovatelj u “enter_button_clicked”, “aktivirano” signal je zadani signal koji se šalje kada se pritisne tipka “Enter ” dok se fokusira na tekst ulazni vidžet.

Morat ćemo dodati još jedan rukovalac za signal “kliknuto ” za naš widget dugmeta o dugmetu, kliknuti na njega i promijeniti signal “kliknuti ” u “button_is_clicked “.

11. Idite na karticu “Common” i označite “Ima fokus” kako slijedi (Da biste dali zadani fokus za dugme o umjesto unosa).

12. Sada sa lijeve bočne trake kreirajte novi prozor “O dijalogu ”.

I primijetit ćete da je kreiran prozor “O dijalogu ”.

Izmijenimo ga.. Provjerite jeste li umetnuli sljedeće postavke za njega sa desne bočne trake.

Nakon što izvršite gorenavedena podešavanja, dobićete sledeće o prozoru.

U gornjem prozoru ćete primijetiti prazan prostor, ali ga možete ukloniti tako što ćete smanjiti broj kutija sa 3 na 2 ili mu možete dodati bilo koji widget ako želite.

13. Sada sačuvajte datoteku u svom početnom folderu pod imenom “ui.glade ” i otvorite uređivač teksta i unesite sljedeći kod unutar njega.


#!/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

Sačuvajte fajl u svom kućnom direktorijumu pod tim imenom “myprogram.py”, i dajte mu dozvolu za izvršavanje i pokrenite ga.

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

Unesite tekst u polje za unos, pritisnite taster “Enter” na tastaturi i primetićete da je rečenica ispisana na ljusci.

To je sve za sada, nije potpuna aplikacija, ali samo sam želio da vam pokažem kako da povežete stvari koristeći PyGObject, možete pogledati sve metode za sve GTK widgete na gtkoobjects.

Samo naučite metode, kreirajte widgete koristeći Glade i povežite signale koristeći Python fajl, to je to! Uopšte nije teško prijatelju.

Objasnit ćemo više novih stvari o PyGObject-u u sljedećim dijelovima serije, a do tada budite u toku i ne zaboravite nam dati svoje komentare o članku.