Ƙirƙirar Ƙarin Aikace-aikacen GUI na Ci gaba Ta Amfani da Kayan aikin PyGobject a cikin Linux - Kashi na 2


Muna ci gaba da jerin shirye-shiryen mu game da ƙirƙirar aikace-aikacen GUI a ƙarƙashin tebur na Linux ta amfani da PyGObject, Wannan shi ne kashi na biyu na jerin kuma a yau za mu yi magana game da ƙirƙirar ƙarin aikace-aikacen aiki ta amfani da wasu ci-gaba na widgets.

  1. Ƙirƙiri aikace-aikacen GUI a ƙarƙashin Linux Ta amfani da PyGObject - Part 1

A cikin labarin da ya gabata mun faɗi cewa akwai hanyoyi guda biyu don ƙirƙirar aikace-aikacen GUI ta amfani da PyGObject: hanyar code-only-way da Glade hanyar zane. , amma daga yanzu, kawai za mu yi bayanin hanyar ƙirƙira ta Glade tunda ta fi sauƙi ga yawancin masu amfani, zaku iya koyan hanyar-kawai da kanku ta amfani da python-gtk3-tutorial.

Ƙirƙirar Aikace-aikacen GUI na gaba a cikin Linux

1. Bari mu fara shirye-shirye! Bude Glade zanen ku daga menu na aikace-aikace.

2. Danna maballin \Taga da ke gefen hagu don ƙirƙirar sabo.

3. Danna widget din \Box sannan a sakar a cikin taga babu komai.

4. Za a sa ka shigar da adadin akwatunan da kake so, ka sanya shi 3.

Kuma za ku ga cewa an ƙirƙiri akwatuna, waɗannan akwatunan suna da mahimmanci a gare mu don samun damar ƙara fiye da kawai 1 widget a cikin taga.

5. Yanzu danna widget ɗin akwatin, sannan ka canza nau'in daidaitawa daga a tsaye zuwa a kwance.

6. Domin ƙirƙirar tsari mai sauƙi, ƙara \Shigar da Rubutu, \Rubutun Akwatin Haɗa da maɓallin \Button ” widgets ga kowane ɗayan akwatunan, yakamata ku sami wani abu kamar wannan.

7. Yanzu danna widget din \window1 daga gefen gefen dama, sannan ka canza matsayinsa zuwa \Center.

Gungura ƙasa zuwa sashin \Bayyana.. Kuma ƙara taken don taga Shirin Nawa.

8. Hakanan zaka iya zaɓar alamar taga ta danna kan akwatin \Icon Name.

9. Hakanan zaka iya canza tsohuwar tsawo & nisa don aikace-aikacen.. Bayan duk wannan, yakamata ku sami wani abu kamar wannan.

A cikin kowane shiri, abu mafi mahimmanci shine ƙirƙirar taga \Game da, don yin wannan, da farko za mu canza maɓallin al'ada da muka ƙirƙira a baya zuwa maɓallin hannun jari, duba. a hoton.

10. Yanzu, dole ne mu canza wasu sigina don gudanar da takamaiman ayyuka lokacin da wani lamari ya faru akan widget din mu. Danna maballin shigar da rubutu, canza zuwa shafin \Signals da ke gefen gefen dama, nemo \an kunna sannan a canza shi. mai kula da \enter_button_clicked, siginar \a kunne shine siginar tsoho da ake aikowa lokacin da aka buga maɓallin \Shigar yayin da ake mai da hankali kan widget ɗin shigarwar rubutu.

Dole ne mu ƙara wani mai kula da siginar \latsa don abin widget ɗin mu game da maɓalli, danna shi kuma canza siginar \latsa zuwa \< b>maballin_ana danna_“.

11. Jeka shafin \Common sannan ka yi alama akan \Has Focus kamar yadda ya biyo baya (Don ba da tsohowar mayar da hankali ga maɓallin game da maballin maimakon shigarwa). .

12. Yanzu daga gefen hagu, ƙirƙirar sabon taga \Game da Magana.

Kuma za ku lura cewa an ƙirƙiri taga \Game da Magana.

Bari mu gyara shi.. Tabbatar cewa kun saka masa saitunan masu zuwa daga madaidaicin labarun gefe.

Bayan yin saitunan da ke sama, za ku sami bin game da Window.

A cikin taga da ke sama, zaku lura da sarari mara kyau, amma zaku iya cire shi ta hanyar rage adadin akwatuna daga 3 zuwa 2 ko kuna iya ƙara kowane widget ɗin a ciki idan kuna so.

13. Yanzu ajiye fayil ɗin a cikin babban fayil ɗin gidanku a cikin sunan \ui.glade sannan ku buɗe editan rubutu sannan ku shigar da lambar da ke cikinsa.

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

Ajiye fayil ɗin a cikin kundin adireshi na gida a ƙarƙashin wannan sunan \myprogram.py, kuma ba shi izinin aiwatar da shi kuma gudanar da shi.

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

Shigar da rubutu a cikin akwatin shigarwa, danna maɓallin \Enter akan madannai, kuma za ku lura cewa an buga jimlar a harsashi.

Shi ke nan a yanzu, ba cikakken aikace-aikacen ba ne, amma kawai ina so in nuna muku yadda ake haɗa abubuwa tare ta amfani da PyGObject, zaku iya duba duk hanyoyin don duk GTK widgets a gtkobject.

Koyi hanyoyin kawai, ƙirƙirar widgets ta amfani da Glade, kuma haɗa siginar ta amfani da fayil ɗin Python, Shi ke nan! Ba shi da wahala ko kadan abokina.

Za mu yi bayanin ƙarin sababbin abubuwa game da PyGObject a cikin sassan na gaba na jerin, har sai ku ci gaba da sabuntawa kuma kar ku manta da ba mu sharhin ku game da labarin.