Luo lisää edistyneitä GUI-sovelluksia PyGobject-työkalulla Linuxissa - Osa 2


Jatkamme sarjaamme GUI-sovellusten luomisesta Linux-työpöydälle PyGObjectin avulla. Tämä on sarjan toinen osa, ja tänään puhumme toimivampien sovellusten luomisesta edistyneillä widgeteillä.

Vaatimukset

  1. Luo GUI-sovelluksia Linuxissa PyGObjectin avulla – Osa 1

Edellisessä artikkelissa sanoimme, että on olemassa kaksi tapaa luoda GUI-sovelluksia PyGObjectin avulla: vain koodilla ja Glade -suunnittelijalla. , mutta tästä lähtien selitämme vain Glade -suunnittelijan, koska se on paljon helpompaa useimmille käyttäjille. Voit oppia koodin käyttämisen itse käyttämällä python-gtk3-opetusohjelmaa.

Advance GUI -sovellusten luominen Linuxissa

1. Aloitetaan ohjelmointi! Avaa Glade -suunnittelija sovellusvalikosta.

2. Napsauta vasemman sivupalkin Ikkuna -painiketta luodaksesi uuden.

3. Napsauta Box -widgetiä ja vapauta se tyhjästä ikkunasta.

4. Sinua pyydetään syöttämään haluamasi ruutujen määrä. Tee siitä 3.

Ja näet, että laatikot on luotu. Ne ovat tärkeitä meille, jotta voimme lisätä ikkunaan enemmän kuin vain 1 widgetin.

5. Napsauta nyt laatikko-widgetiä ja muuta suuntatyypiksi pystysuora vaakasuuntaiseksi.

6. Jos haluat luoda yksinkertaisen ohjelman, lisää "Tekstisyöttö", "Yhdistelmäteksti" ja "painike ” widgetit jokaiselle laatikolle, sinulla pitäisi olla jotain tämän kaltaista.

7. Napsauta nyt ikkuna1 -widgetiä oikeasta sivupalkista ja muuta sen sijainti "Center".

Vieritä alas Ulkoasu -osioon. Lisää otsikko ikkunalle Oma ohjelma.

8. Voit myös valita ikkunalle kuvakkeen napsauttamalla Kuvakkeen nimi -ruutua.

9. Voit myös muuttaa sovelluksen oletus korkeutta ja leveyttä. Kaiken tämän jälkeen sinulla pitäisi olla jotain tämän kaltaista.

Missä tahansa ohjelmassa yksi tärkeimmistä asioista on luoda Tietoja -ikkuna. Tätä varten meidän on ensin muutettava aiemmin luomamme normaali painike osakepainikkeeksi, katso kuva.

10. Nyt meidän on muokattava joitain signaaleja, jotta voimme suorittaa tiettyjä toimia, kun widgeteissämme tapahtuu jotain. Napsauta tekstinsyöttö-widgetiä, vaihda oikean sivupalkin Signals -välilehdelle, etsi sanalla "aktivoitu" ja vaihda sen käsittelijäksi "enter_button_clicked", "aktivoitu" -signaali on oletussignaali, joka lähetetään, kun Enter-näppäintä painetaan, kun tarkennat tekstiä. syöttöwidget.

Meidän on lisättävä toinen käsittelijä "clicked "-signaalille About-painike-widgetille, klikattava sitä ja muutettava "clicked" -signaaliksi "button_is_clicked" ".

11. Siirry Yleinen -välilehdelle ja merkitse kohtaan "On kohdistus" seuraavasti (Asettaaksesi oletuskohdistuksen about-painikkeelle merkinnän sijaan).

12. Luo nyt uusi Tietoja valintaikkunasta -ikkuna vasemmasta sivupalkista.

Ja huomaat, että "Tietoja valintaikkunasta " -ikkuna luodaan.

Muokataan sitä... Varmista, että lisäät sille seuraavat asetukset oikeasta sivupalkista.

Kun olet tehnyt yllä olevat asetukset, saat seuraavat tiedot ikkunasta.

Yllä olevassa ikkunassa huomaat tyhjän tilan, mutta voit poistaa sen vähentämällä laatikoiden määrää 3:sta 2:een tai voit lisätä siihen minkä tahansa widgetin, jos haluat.

13. Tallenna nyt tiedosto kotikansioosi nimellä ui.glade ja avaa tekstieditori ja kirjoita siihen seuraava koodi.


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

Tallenna tiedosto kotihakemistoosi sillä nimellä "omaohjelma.py", anna sille suoritusoikeus ja suorita se.

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

Kirjoita teksti syöttöruutuun, paina näppäimistön Enter -näppäintä, niin huomaat, että lause on painettu kuoreen.

Siinä kaikki toistaiseksi, se ei ole täydellinen sovellus, mutta halusin vain näyttää, kuinka asiat linkitetään yhteen PyGObjectin avulla. Voit tarkastella kaikkia menetelmiä kaikille GTK-widgeteille osoitteessa gtkoobjektit.

Opi vain menetelmät, luo widgetit Gladen avulla ja yhdistä signaalit Python-tiedoston avulla. Siinä se! Se ei ole ollenkaan vaikeaa ystäväni.

Selitämme lisää uusia asioita PyGObjectista sarjan seuraavissa osissa, siihen asti pysy ajan tasalla ja älä unohda antaa meille kommenttejasi artikkelista.