Oħloq Aktar Applikazzjonijiet GUI Avvanzati Bl-użu tal-Għodda PyGobject fil-Linux - Parti 2


Inkomplu s-serje tagħna dwar il-ħolqien ta 'applikazzjonijiet GUI taħt id-desktop tal-Linux bl-użu ta' PyGObject, Din hija t-tieni parti tas-serje u llum ser nitkellmu dwar il-ħolqien ta 'applikazzjonijiet aktar funzjonali bl-użu ta' xi widgets avvanzati.

  1. Oħloq Applikazzjonijiet GUI Taħt Linux billi tuża PyGObject – Parti 1

Fl-artiklu preċedenti għidna li hemm żewġ modi kif jinħolqu applikazzjonijiet GUI bl-użu ta' PyGObject: il-mod ta' kodiċi biss u l-mod tad-disinjatur Glade , iżda minn issa 'l quddiem, se nkunu qed nispjegaw biss il-mod tad-disinjatur Glade peress li huwa ħafna aktar faċli għall-biċċa l-kbira tal-utenti, tista' titgħallem il-mod tal-kodiċi biss minnek stess billi tuża python-gtk3-tutorial.

Ħolqien ta 'Applikazzjonijiet GUI Advance fil-Linux

1. Ejja nibdew nipprogrammaw! Iftaħ id-disinjatur tal-Glade tiegħek mill-menu tal-applikazzjonijiet.

2. Ikklikkja fuq il-buttuna \Tieqa fuq l-istrixxa tal-ġenb tax-xellug sabiex toħloq waħda ġdida.

3. Ikklikkja fuq il-widget \Kaxxa u erħiha fuq it-tieqa vojta.

4. Inti se tkun imħeġġa biex iddaħħal in-numru ta 'kaxxi li trid, tagħmilha 3.

U tara li l-kaxxi huma maħluqa, dawk il-kaxxi huma importanti għalina sabiex inkunu nistgħu nżidu aktar minn sempliċi 1 widget f'tieqa.

5. Issa ikklikkja fuq il-widget kaxxa, u ibdel it-tip ta' orjentazzjoni minn vertikali għal orizzontali.

6. Sabiex toħloq programm sempliċi, żid \Dħul ta' Test, \Test tal-Kaxxa Combo u \Button ” widgets għal kull waħda mill-kaxxi, għandu jkollok xi ħaġa bħal din.

7. Issa kklikkja fuq il-widget \tieqa1 mill-istrixxa tal-ġenb tal-lemin, u biddel il-pożizzjoni tagħha għal \Center.

Skrollja 'l isfel lejn it-taqsima \Dehra” .. U żid titolu għat-tieqa “Il-Programm Tiegħi“.

8. Tista' wkoll tagħżel ikona għat-tieqa billi tikklikkja fuq il-kaxxa \Isem tal-Ikona”.

9. Tista 'wkoll tibdel l-għoli & wisa default għall-applikazzjoni.. Wara dan kollu, għandu jkollok xi ħaġa bħal din.

Fi kwalunkwe programm, waħda mill-aktar ħaġa importanti hija li tinħoloq tieqa \Dwar”, biex tagħmel dan, l-ewwel ikollna nbiddlu l-buttuna normali li ħloqna qabel f'buttuna tal-istokk, ħares fl-istampa.

10. Issa, ser ikollna nimmodifikaw xi sinjali sabiex inwettqu azzjonijiet speċifiċi meta jseħħ xi avveniment fuq il-widgets tagħna. Ikklikkja fuq il-widget daħla tat-test, aqleb għat-tab \Sinjali” fil-bar tal-ġenb tal-lemin, fittex \attivat” u biddel tiegħu handler għal \enter_button_clicked, is-sinjal \attivat” huwa s-sinjal default li jintbagħat meta tintlaqat iċ-ċavetta \Enter” filwaqt li tiffoka fuq il-widget tad-dħul tat-test.

Ikollna nżidu handler ieħor għas-sinjal \ikklikkjat” għall-widget tal-buttuna dwar tagħna, ikklikkja fuqu u biddel is-sinjal \ikklikkjat” għal \< b>button_is_clicked“.

11. Mur fit-tab \Komun u mmarka fuq \Għandu Focus kif ġej (Biex tagħti l-fokus default għall-buttuna dwar minflok id-dħul) .

12. Issa mill-istrixxa tal-ġenb tax-xellug, oħloq tieqa ġdida \Dwar id-Djalogu.

U tinnota li tinħoloq it-tieqa \Dwar id-Djalogu.

Ejja nimmodifikawh.. Kun żgur li daħħal is-settings li ġejjin għaliha mill-istrixxa tal-lemin.

Wara li tagħmel is-settings ta 'hawn fuq, ikollok issegwi dwar it-Tieqa.

Fit-tieqa ta 'hawn fuq, tinnota l-ispazju vojt, iżda tista' tneħħih billi tnaqqas in-numru ta 'kaxxi minn 3 għal 2 jew tista' żżid xi widget miegħu jekk trid.

13. Issa ssejvja l-fajl fil-folder tad-dar tiegħek fl-isem \ui.glade” u iftaħ editur tat-test u daħħal il-kodiċi li ġej ġewwa fih.

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

Issejvja l-fajl fid-direttorju tad-dar tiegħek taħt dak l-isem \myprogram.py, u agħtih il-permess ta' eżekuzzjoni u mexxih.

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

Daħħal test fil-kaxxa tad-dħul, agħfas il-ċavetta \Enter fuq it-tastiera, u tinduna li s-sentenza hija stampata fil-qoxra.

Dak kollu għalissa, mhix applikazzjoni kompluta, imma ridt nuruk kif torbot l-affarijiet flimkien billi tuża PyGObject, tista' tara l-metodi kollha għall-widgets kollha GTK fuq gtkobjects.

Tgħallem biss il-metodi, oħloq il-widgets billi tuża Glade, u qabbad is-sinjali billi tuża l-fajl Python, That's it! Mhu diffiċli xejn ħabib tiegħi.

Aħna nispjegaw aktar affarijiet ġodda dwar PyGObject fil-partijiet li jmiss tas-serje, sa dakinhar nibqgħu aġġornati u tinsiex tagħtina l-kummenti tiegħek dwar l-artiklu.