Lag flere avanserte GUI-applikasjoner ved å bruke PyGobject Tool i Linux - Del 2


Vi fortsetter serien vår om å lage GUI-applikasjoner under Linux-skrivebordet ved å bruke PyGObject. Dette er den andre delen av serien, og i dag skal vi snakke om å lage mer funksjonelle applikasjoner ved å bruke noen avanserte widgets.

  1. Lag GUI-applikasjoner under Linux ved å bruke PyGObject – Del 1

I forrige artikkel sa vi at det er to måter å lage GUI-applikasjoner på ved å bruke PyGObject: bare kodemåten og Glade designermåten , men fra nå av vil vi bare forklare Glade-designermåten siden det er mye enklere for de fleste brukere, du kan lære deg kun kodeveien selv ved å bruke python-gtk3-tutorial.

Opprette Advance GUI-applikasjoner i Linux

1. La oss begynne å programmere! Åpne Glade-designeren fra applikasjonsmenyen.

2. Klikk på \Vindu-knappen på venstre sidefelt for å opprette en ny.

3. Klikk på \Boks-widgeten og slipp den i det tomme vinduet.

4. Du vil bli bedt om å angi antall bokser du ønsker, gjør det til 3.

Og du vil se at boksene er opprettet, disse boksene er viktige for oss for å kunne legge til mer enn bare 1 widget i et vindu.

5. Klikk nå på boks-widgeten, og endre retningstypen fra vertikal til horisontal.

6. For å lage et enkelt program, legg til en \Tekstoppføring, \Kombobokstekst og en \knapp ” widgets for hver av boksene, bør du ha noe sånt som dette.

7. Klikk nå på \vindu1-widgeten fra høyre sidefelt, og endre posisjonen til \Center.

Rull ned til \Utseende-delen. Og legg til en tittel for vinduet Mitt program.

8. Du kan også velge et ikon for vinduet ved å klikke på \Ikonnavn-boksen.

9. Du kan også endre standard høyde og bredde for applikasjonen. Etter alt dette bør du ha noe sånt som dette.

I ethvert program er noe av det viktigste å lage et \Om-vindu, for å gjøre dette må vi først endre den vanlige knappen vi opprettet før til en aksjeknapp, se ved bildet.

10. Nå må vi endre noen signaler for å kjøre spesifikke handlinger når en hendelse inntreffer på widgetene våre. Klikk på tekstoppføring-widgeten, bytt til fanen \Signaler i høyre sidefelt, søk etter \aktivert og endre dens behandler til \enter_button_clicked, \aktivert-signalet er standardsignalet som sendes når \Enter-tasten trykkes mens du fokuserer på tekstinntastingsmodulen.

Vi må legge til en annen behandler for \klikket-signalet for vår om-knapp-widget, klikk på den og endre \klikket-signalet til \< b>knappen_er_klikkes“.

11. Gå til \Felles-fanen og merk \Har fokus som følger (for å gi standardfokus for om-knappen i stedet for oppføringen) .

12. Nå fra venstre sidefelt, lag et nytt \Om dialog-vindu.

Og du vil legge merke til at vinduet \Om dialog er opprettet.

La oss endre det.. Pass på at du setter inn følgende innstillinger for det fra høyre sidefelt.

Etter å ha gjort innstillingene ovenfor, vil du følge om Window.

I vinduet ovenfor vil du legge merke til den tomme plassen, men du kan fjerne den ved å avvise antall bokser fra 3 til 2, eller du kan legge til en hvilken som helst widget til den hvis du vil.

13. Lagre nå filen i hjemmemappen din i navnet \ui.glade og åpne et tekstredigeringsprogram og skriv inn følgende kode i den.

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

Lagre filen i hjemmekatalogen din under det navnet \myprogram.py, og gi den utføringstillatelsen og kjør den.

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

Skriv inn en tekst i inntastingsboksen, trykk på \Enter-tasten på tastaturet, og du vil legge merke til at setningen er skrevet ut ved skallet.

Det var alt for nå, det er ikke et komplett program, men jeg ville bare vise deg hvordan du kobler ting sammen ved å bruke PyGObject. Du kan se alle metoder for alle GTK-widgeter på gtkobjects.

Bare lær metodene, lag widgetene ved hjelp av Glade, og koble til signalene ved hjelp av Python-filen, det er det! Det er ikke vanskelig i det hele tatt min venn.

Vi vil forklare flere nye ting om PyGObject i de neste delene av serien, inntil da hold deg oppdatert og ikke glem å gi oss dine kommentarer om artikkelen.