Ustvarite več naprednih GUI aplikacij z orodjem PyGobject v Linuxu - 2. del


Nadaljujemo s serijo o ustvarjanju aplikacij GUI pod namizjem Linux z uporabo PyGObject . To je drugi del serije in danes bomo govorili o ustvarjanju bolj funkcionalnih aplikacij z uporabo nekaterih naprednih pripomočkov.

  1. Ustvarite aplikacije GUI v Linuxu z uporabo PyGObject - 1. del

V prejšnjem članku smo povedali, da obstajata dva načina za ustvarjanje GUI aplikacij z uporabo PyGObject : samo koda in Glade način oblikovalca , odslej pa bomo razlagali samo način oblikovalca Glade , saj je za večino uporabnikov to veliko lažje, samo s kodo se lahko naučite sami s pomočjo vadnice python-gtk3-tutorial.

Ustvarjanje vnaprejšnjih GUI aplikacij v Linuxu

1. Začnimo s programiranjem! V meniju aplikacij odprite oblikovalec Glade .

2. Kliknite gumb\" Okno " na levi stranski vrstici, da ustvarite novega.

3. Kliknite pripomoček\" Box " in ga spustite v prazno okno.

4. Pozvani boste, da vnesete želeno število polj, in sicer 3 .

In videli boste, da so polja ustvarjena, ta polja so za nas pomembna, da lahko v okno dodamo več kot le 1 gradnik.

5. Zdaj kliknite pripomoček polje in spremenite vrsto usmeritve iz navpično v vodoravno .

6. Če želite ustvariti preprost program, dodajte\" vnos besedila ",\" kombinirano polje Besedilo " in\" gumb ”Pripomočki za vsako polje, bi morali imeti nekaj takega.

7. Zdaj kliknite pripomoček\" window1 " v desni stranski vrstici in spremenite njegov položaj v\" Center ".

Pomaknite se navzdol do razdelka\" Videz " .. In dodajte naslov okna » Moj program «.

8. Za okno lahko izberete tudi ikono s klikom na polje\" Ime ikone ".

9. Za aplikacijo lahko spremenite tudi privzeto višino in širino . Po vsem tem bi morali imeti nekaj takega.

V katerem koli programu je ena najpomembnejših stvari ustvariti okno\" Vizitka ". Če želite to narediti, moramo najprej spremeniti običajni gumb, ki smo ga prej ustvarili, v gumb zaloge, poglejte na sliki.

10. Zdaj bomo morali spremeniti nekatere signale, da bomo lahko izvajali določena dejanja, ko se na naših pripomočkih zgodi kateri koli dogodek. Kliknite pripomoček vnos besedila , v desni stranski vrstici preklopite na zavihek\" Signali ", poiščite\" aktivirano " in ga spremenite obdelovalca na\" enter_button_clicked ", je signal\" aktiviran " privzeti signal, ki se pošlje, ko pritisnete tipko\" Enter" medtem ko se osredotočite na pripomoček za vnos besedila.

Morali bomo dodati še en vodnik za signal\" kliknili " za naš pripomoček o gumbu, klikniti nanj in spremeniti signal\" kliknili " v\"< b> button_is_clicked “.

11. Pojdite na zavihek\" Pogosto " in označite na\" Ima fokus ", kot sledi (Če želite namesto vnosa določiti privzeto fokus za gumb približno .

12. Zdaj v levi stranski vrstici ustvarite novo okno\" O pogovornem oknu ".

In opazili boste, da je ustvarjeno okno\" O pogovornem oknu ".

Spremenimo ga .. Poskrbite, da boste z desne stranske vrstice vstavili naslednje nastavitve zanj.

Po izvedbi zgornjih nastavitev boste dobili naslednje informacije o oknu.

V zgornjem oknu boste opazili prazen prostor, lahko pa ga odstranite tako, da zmanjšate število polj s 3 na 2 ali pa mu dodate poljuben pripomoček, če želite.

13. Zdaj datoteko shranite v domačo mapo z imenom\" ui.glade " in odprite urejevalnik besedil ter vanj vnesite naslednjo kodo.

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

Datoteko shranite v domači imenik pod tem imenom\" myprogram.py " in ji dajte dovoljenje za zagon ter jo zaženite.

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

V polje za vnos vnesite besedilo, pritisnite tipko\" Enter " na tipkovnici in opazili boste, da je stavek natisnjen na lupini.

Za zdaj to še ni vse, ni popolna aplikacija, vendar sem vam samo želel pokazati, kako lahko stvari povežete skupaj z PyGObject , vse metode za vse pripomočke GTK si lahko ogledate na gtkobjects.

Preprosto se naučite metod, ustvarite pripomočke z uporabo Glade in povežite signale z datoteko Python, to je to! Sploh ni težko moj prijatelj.

V naslednjih delih serije bomo razložili več novih stvari o PyGObjectu, do takrat pa bodite na tekočem in ne pozabite nam dati svojih komentarjev o članku.