Búðu til fleiri fyrirfram GUI forrit með PyGobject tólinu í Linux - Part 2


Við höldum áfram röð okkar um að búa til GUI forrit undir Linux skjáborðinu með því að nota PyGObject, þetta er seinni hluti seríunnar og í dag munum við tala um að búa til hagnýtari forrit með háþróaðri búnaði.

  1. Búðu til GUI forrit undir Linux með því að nota PyGObject – Part 1

Í fyrri grein sögðum við að það eru tvær leiðir til að búa til GUI forrit með PyGObject: aðeins kóða og Glade hönnuður leiðina , en héðan í frá munum við aðeins útskýra Glade hönnuðarleiðina þar sem það er miklu auðveldara fyrir flesta notendur, þú getur lært aðeins kóðann sjálfur með því að nota python-gtk3-tutorial.

Að búa til Advance GUI forrit í Linux

1. Byrjum að forrita! Opnaðu Glade hönnuðinn þinn í forritavalmyndinni.

2. Smelltu á \Window hnappinn á vinstri hliðarstikunni til að búa til nýjan.

3. Smelltu á \Box græjuna og slepptu henni í tóma glugganum.

4. Þú verður beðinn um að slá inn fjölda kassa sem þú vilt, gerðu það 3.

Og þú munt sjá að kassarnir eru búnir til, þessir kassar eru mikilvægir fyrir okkur til að geta bætt við meira en bara einni græju í glugga.

5. Smelltu nú á box græjuna og breyttu stefnumótuninni úr lóðrétt í lárétt.

6. Til að búa til einfalt forrit skaltu bæta við \Textafærslu, \Combo Box Text og \hnappi ” græjur fyrir hvern og einn kassa, þú ættir að hafa eitthvað svona.

7. Smelltu nú á \glugga1 græjuna á hægri hliðarstikunni og breyttu stöðu hennar í \Center“.

Skrunaðu niður í \Útlit hlutann.. Og bættu við titli fyrir gluggann Forritið mitt.

8. Þú getur líka valið tákn fyrir gluggann með því að smella á \Táknheiti reitinn.

9. Þú getur líka breytt sjálfgefna hæð og breidd fyrir forritið.. Eftir allt þetta ættirðu að hafa eitthvað eins og þetta.

Í hvaða forriti sem er er eitt það mikilvægasta að búa til \Um glugga, til að gera þetta verðum við fyrst að breyta venjulegum hnappi sem við bjuggum til áður í hlutabréfahnapp, sjáðu við myndina.

10. Nú verðum við að breyta sumum merkjum til að framkvæma sérstakar aðgerðir þegar einhver atburður á sér stað á búnaðinum okkar. Smelltu á textafærslu græjuna, skiptu yfir í \Signals flipann í hægri hliðarstikunni, leitaðu að \virkjað og breyttu því meðhöndlun til að \enter_button_clicked, \virkjað merkið er sjálfgefið merki sem er sent þegar ýtt er á \Enter takkann meðan þú einbeitir þér að textafærslugræjunni.

Við verðum að bæta við öðrum stjórnanda fyrir \smellt merkið fyrir um hnappinn okkar, smelltu á það og breyttu \smellt merkinu í \< b>smellt er á hnappinn“.

11. Farðu á \Algengt flipann og merktu við \Har Focus eins og hér segir (Til að gefa sjálfgefinn fókus fyrir um hnappinn í stað færslunnar) .

12. Nú á vinstri hliðarstikunni, búðu til nýjan \Um glugga glugga.

Og þú munt taka eftir því að \About Dialog glugginn er búinn til.

Við skulum breyta því.. Gakktu úr skugga um að þú setjir inn eftirfarandi stillingar fyrir það frá hægri hliðarstikunni.

Eftir að þú hefur gert ofangreindar stillingar muntu fylgjast með Window.

Í glugganum hér að ofan muntu taka eftir tómu rýminu, en þú getur fjarlægt það með því að fækka fjölda kassa úr 3 í 2 eða þú getur bætt hvaða búnaði sem er við það ef þú vilt.

13. Vistaðu nú skrána í heimamöppunni þinni í nafninu \ui.glade og opnaðu textaritil og sláðu inn eftirfarandi kóða inni í honum.

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

Vistaðu skrána í heimamöppunni þinni undir því nafni \myprogram.py, og gefðu henni keyrsluheimildina og keyrðu hana.

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

Sláðu inn texta í færslureitinn, ýttu á \Enter takkann á lyklaborðinu og þú munt taka eftir því að setningin er prentuð á skelinni.

Það er allt í bili, þetta er ekki fullbúið forrit, en ég vildi bara sýna þér hvernig á að tengja hluti saman með PyGObject, þú getur skoðað allar aðferðir fyrir allar GTK græjur á gtkobjects.

Lærðu bara aðferðirnar, búðu til græjurnar með Glade og tengdu merkin með Python skránni, það er það! Það er alls ekki erfitt vinur minn.

Við munum útskýra fleiri nýja hluti um PyGObject í næstu hlutum seríunnar, þangað til vertu uppfærð og ekki gleyma að gefa okkur athugasemdir þínar um greinina.