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.
- 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.