Luo lisää graafisen käyttöliittymän sovelluksia käyttämällä PyGobject-työkalua Linuxissa - osa 2


Jatkamme sarjaa GUI-sovellusten luomisesta Linux-työpöydälle käyttämällä PyGObject ia. Tämä on sarjan toinen osa, ja tänään puhumme toimivampien sovellusten luomisesta joidenkin edistyneiden widgetien avulla.

  1. Luo käyttöliittymäsovelluksia Linux-käyttöjärjestelmässä käyttäen PyGObjectia - osa 1

Edellisessä artikkelissa sanoimme, että GUI-sovellusten luomiseen PyGObject -tekniikalla on kaksi tapaa: vain kooditapa ja Glade -suunnittelutapa , mutta tästä lähtien me selitämme vain Glade -suunnittelijan tapaa, koska se on paljon helpompaa useimmille käyttäjille, voit oppia vain kooditavan itse käyttämällä python-gtk3-tutorial -ohjelmaa.

Advance GUI -sovellusten luominen Linuxissa

1. Aloitetaan ohjelmointi! Avaa Glade -suunnittelijasi sovellusvalikosta.

2. Luo uusi napsauttamalla vasemman sivupalkin Ikkuna -painiketta.

3. Napsauta Box -widgetiä ja vapauta se tyhjässä ikkunassa.

4. Sinua pyydetään antamaan haluamasi laatikkojen määrä, tekemällä se arvoksi 3 .

Ja huomaat, että laatikot on luotu, nämä laatikot ovat meille tärkeitä voidaksemme lisätä enemmän kuin vain 1 -widgetin ikkunaan.

5. Napsauta nyt ruutu -widgetiä ja muuta suunnan tyyppi pystysuorasta arvoksi vaakasuoraksi .

6. Yksinkertaisen ohjelman luomiseksi lisää Tekstinsyöttö , Yhdistelmäruudun teksti ja Painike -widgetit jokaisessa laatikossa, sinulla pitäisi olla jotain tällaista.

7. Napsauta nyt oikean sivupalkin ikkuna1 -widgetiä ja vaihda sen sijainniksi Keskusta .

Vieritä alas Ulkonäkö -kohtaan. Ja lisää otsikko ikkunalle Oma ohjelma .

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

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

Missä tahansa ohjelmassa yksi tärkeimmistä on luoda Tietoja -ikkuna. Tätä varten meidän on ensin muutettava tavallinen aiemmin luomamme painike varastopainikkeeksi, katsottava kuva.

10. Meidän on nyt muokattava joitain signaaleja tiettyjen toimintojen suorittamiseksi, kun widgeteissämme tapahtuu tapahtumia. Napsauta tekstinsyöttö -widgetiä, vaihda oikean sivupalkin Signaalit -välilehdelle, etsi sanaa aktivoitu ja vaihda sen käsittelijä "Enter_button_clicked ", "aktivoitu " -signaali on oletussignaali, joka lähetetään, kun "Enter" -näppäintä painetaan, kun keskitytään tekstiin syöttö-widget.

Meidän on lisättävä toinen käsittelijä noin napsautetun widget-signaalin "napsautetulle signaalille, napsautettava sitä ja muutettava" napsautettu "-signaali muotoon" button_is_clicked " “.

11. Mene ” Yleinen ” -välilehdelle ja merkitse kohtaan ” Kohdistaa ” seuraavasti (Jos haluat määrittää oletuspainikkeen noin-painikkeelle merkinnän sijaan).

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

Huomaat, että Tietoja valintaikkunasta -ikkuna on luotu.

Muokataan sitä .. Varmista, että lisäät sille seuraavat asetukset oikealta sivupalkilta.

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

Yllä olevassa ikkunassa huomaat tyhjää tilaa, mutta voit poistaa sen vähentämällä ruutujen lukumäärää 3: sta kahteen tai voit lisätä siihen minkä tahansa widgetin, jos haluat.

13. Tallenna tiedosto nyt kotikansioon nimessä ” ui.glade ”, avaa tekstieditori ja kirjoita seuraava koodi siihen.

#!/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 kotihakemistoon nimellä myprogram.py , ja anna sille suorituslupa 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ä ja huomaat, että lause on tulostettu kuoreen.

Kaikki on toistaiseksi, se ei ole täydellinen sovellus, mutta halusin vain näyttää, kuinka linkittää asioita yhteen käyttämällä PyGObject ia. Voit tarkastella kaikkia GTK -widgetien kaikkia menetelmiä osoitteessa gtkobjects.

Opi vain menetelmät, luo widgetit Glade : llä ja yhdistä signaalit Python-tiedostolla. Se ei ole ollenkaan vaikeaa ystäväni.

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