Paghimo og Dugang nga Abanteng mga Aplikasyon sa GUI Gamit ang PyGobject Tool sa Linux - Bahin 2


Gipadayon namo ang among serye mahitungod sa pagmugna og GUI nga mga aplikasyon ubos sa Linux desktop gamit ang PyGObject, Kini ang ikaduhang bahin sa serye ug karong adlawa maghisgot kami mahitungod sa paghimo og mas magamit nga mga aplikasyon gamit ang pipila ka advanced widgets.

  1. Paghimo ug GUI Aplikasyon Ubos sa Linux Gamit ang PyGObject – Bahin 1

Sa miaging artikulo kami miingon nga adunay duha ka paagi sa paghimo og GUI nga mga aplikasyon gamit ang PyGObject: ang code-only-way ug ang Glade designer nga paagi , pero sugod karon, ato na lang ipatin-aw ang Glade nga paagi sa tigdesinyo tungod kay mas sayon para sa kadaghanang tiggamit, makakat-on ka sa code-only-way sa imong kaugalingon gamit ang python-gtk3-tutorial.

Paghimo ug Advance GUI Applications sa Linux

1. Magsugod ta sa pagprograma! Ablihi ang imong Glade nga tigdesinyo gikan sa menu sa mga aplikasyon.

2. I-klik ang \Window” nga buton sa wala nga sidebar aron makahimo og bag-o.

3. I-klik ang \Box” widget ug buhian kini sa walay sulod nga bintana.

4. Maaghat ka sa pagsulod sa gidaghanon sa mga kahon nga imong gusto, himoa kini nga 3.

Ug imong makita nga ang mga kahon gibuhat, kana nga mga kahon importante alang kanamo aron makadugang labaw pa sa 1 widget sa usa ka bintana.

5. Karon i-klik ang box widget, ug usba ang orientation type gikan sa vertical ngadto sa horizontal.

6. Aron makahimo ug yano nga programa, pagdugang ug \Text Entry, \Combo Box Text” ug usa ka \Button ” widgets alang sa matag usa sa mga kahon, kinahanglan nga adunay usa ka butang nga sama niini.

7. Karon i-klik ang \window1 nga widget gikan sa tuo nga sidebar, ug usba ang posisyon niini ngadto sa \Center.

Pag-scroll paubos ngadto sa seksyon nga \Pagpakita.

8. Makapili ka usab og icon para sa bintana pinaagi sa pag-klik sa kahon nga \Icon Name.

9. Mahimo usab nimo usbon ang default gitas-on & kalapad alang sa aplikasyon.. Human sa tanan nga, kinahanglan nga adunay usa ka butang nga sama niini.

Sa bisan unsang programa, usa sa labing importante nga butang mao ang paghimo og \About” nga bintana, aron mahimo kini, kinahanglan una natong usbon ang normal nga buton nga atong gibuhat kaniadto ngadto sa stock button, tan-awa sa hulagway.

10. Karon, kinahanglan namong usbon ang pipila ka mga signal aron makadagan ang mga piho nga aksyon kung adunay bisan unsang panghitabo nga mahitabo sa among mga widget. I-klik ang text entry widget, ibalhin ngadto sa \Signals” nga tab sa tuo nga sidebar, pangitaa ang \activate” ug usba ang handler sa \enter_button_clicked, ang \activated” nga signal mao ang default signal nga ipadala kung ang \Enter nga yawe naigo samtang nagtutok sa text entry widget.

Kinahanglan namong idugang ang laing handler para sa \gi-click” nga signal para sa among about button widget, i-klik kini ug usba ang \gi-click” nga signal ngadto sa \< b>button_is_clicked“.

11. Adto sa \Common” tab ug markahi ang \Adunay Focus” ingon sa mosunod (Aron ihatag ang default focus para sa about button imbes sa entry) .

12. Karon gikan sa wala nga sidebar, paghimo ug bag-ong \About Dialog” nga bintana.

Ug imong mamatikdan nga ang \About Dialog” nga bintana gihimo.

Atong usbon kini.. Siguruha nga imong isulod ang mga musunod nga setting para niini gikan sa tuo nga sidebar.

Human sa paghimo sa mga setting sa ibabaw, ikaw mosunod mahitungod sa Window.

Sa ibabaw nga bintana, imong mamatikdan ang walay sulod nga luna, apan mahimo nimo kining tangtangon pinaagi sa pagkunhod sa gidaghanon sa mga kahon gikan sa 3 ngadto sa 2 o mahimo nimong idugang ang bisan unsang widget niini kung gusto nimo.

13. Karon i-save ang file sa imong home folder sa ngalan nga \ui.glade ug ablihi ang usa ka text editor ug isulod ang mosunod nga code sa sulod niini.

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

I-save ang payl sa imong home directory ubos nianang ngalan nga \myprogram.py, ug hatagi kini og permiso sa pagpatuman ug padagana kini.

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

Pagsulod ug text sa entry box, pindota ang \Enter” key sa keyboard, ug imong mamatikdan nga ang sentence giimprinta sa shell.

Kana lang sa pagkakaron, dili kini kompleto nga aplikasyon, pero gusto lang nako ipakita kanimo kung unsaon pagsumpay ang mga butang gamit ang PyGObject, mahimo nimong tan-awon ang tanang pamaagi para sa tanang GTK widgets sa gtkobjects.

Pagkat-on lang sa mga pamaagi, paghimo sa mga widget gamit ang Glade, ug ikonektar ang mga signal gamit ang Python file, Mao na! Dili kini lisud sa akong higala.

Ipatin-aw namo ang dugang nga mga bag-ong butang mahitungod sa PyGObject sa sunod nga mga bahin sa serye, hangtod unya magpabilin nga updated ug ayaw kalimot sa paghatag kanamo sa imong mga komento mahitungod sa artikulo.