Ṣẹda Awọn ohun elo GUI ilosiwaju siwaju sii Lilo Irinṣẹ PyGobject ni Lainos - Apá 2


A tẹsiwaju jara wa nipa ṣiṣẹda awọn ohun elo GUI labẹ tabili Linux ni lilo PyGObject , Eyi ni apakan keji ti jara ati loni a yoo sọrọ nipa ṣiṣẹda awọn ohun elo ṣiṣe diẹ sii nipa lilo diẹ ninu awọn ẹrọ ailorukọ ti o ni ilọsiwaju.

  1. Ṣẹda Awọn ohun elo GUI Labẹ Lainos Lilo PyGObject - Apá 1

Ninu nkan ti tẹlẹ a sọ pe awọn ọna meji lo wa fun ṣiṣẹda awọn ohun elo GUI nipa lilo PyGObject : ọna koodu-nikan ati ọna apẹẹrẹ , ṣugbọn lati isisiyi lọ, a yoo ṣe alaye nikan ni ọna apẹẹrẹ Glade nitori o rọrun pupọ fun ọpọlọpọ awọn olumulo, o le kọ ọna-nikan-koodu nipasẹ ara rẹ nipa lilo python-gtk3-tutorial.

Ṣiṣẹda Awọn ohun elo GUI ilosiwaju ni Linux

1. Jẹ ki a bẹrẹ siseto! Ṣii apẹẹrẹ rẹ Glade lati inu akojọ awọn ohun elo.

2. Tẹ bọtini\" Window " ni pẹpẹ apa osi lati le ṣẹda tuntun kan.

3. Tẹ lori ẹrọ ailorukọ\" Apoti ki o tu silẹ lori window ti o ṣofo.

4. A yoo rọ ọ lati tẹ nọmba awọn apoti ti o fẹ, ṣe ni 3 .

Ati pe iwọ yoo rii pe a ṣẹda awọn apoti , awọn apoti naa ṣe pataki fun wa lati le ni anfani lati ṣafikun diẹ sii ju ailorukọ 1 lọ ni window kan.

5. Bayi tẹ lori ẹrọ itanna apoti , ki o yi iru iṣalaye pada lati inaro si petele .

6. Lati ṣẹda eto ti o rọrun, ṣafikun\" Akọsilẹ Akọsilẹ ",\" Apapo Apoti Ọrọ " ati a "" Bọtini ”Awọn ẹrọ ailorukọ fun ọkọọkan awọn apoti, o yẹ ki o ni nkan bi eleyi.

7. Bayi tẹ lori ẹrọ ailorukọ\" window1 " lati apa ọtun, ki o yi ipo rẹ pada si\" Ile-iṣẹ ".

Yi lọ si isalẹ si apakan\" Ifarahan " .. Ati ṣafikun akọle fun window “ Eto mi “.

8. O tun le yan aami kan fun window nipa titẹ si apoti “" Orukọ Aami ".

9. O tun le yipada aiyipada iga & iwọn fun ohun elo .. Lẹhin gbogbo eyi, o yẹ ki o ni nkan bi eleyi.

Ninu eyikeyi eto, ọkan ninu ohun ti o ṣe pataki julọ ni lati ṣẹda window kan "" Nipa ", lati ṣe eyi, akọkọ a ni lati yi bọtini deede ti a ṣẹda ṣaaju sinu bọtini iṣura kan, wo ni aworan.

10. Bayi, a ni lati yipada diẹ ninu awọn ifihan agbara lati le ṣiṣẹ awọn iṣe kan pato nigbati iṣẹlẹ eyikeyi ba waye lori awọn ẹrọ ailorukọ wa. Tẹ lori ẹrọ ailorukọ titẹ sii , yipada si taabu\" Awọn ifihan agbara " ni apa ọtun, wa fun "" ti mu ṣiṣẹ "ki o yi ayipada rẹ pada olutọju si\" enter_button_clicked ", ami\" ti n mu ṣiṣẹ " jẹ ami aiyipada ti a firanṣẹ nigbati bọtini lu "" Tẹ " lakoko idojukọ lori ailorukọ titẹsi ọrọ.

A yoo ni lati ṣafikun olutọju miiran fun ami\" ti a tẹ " fun ailorukọ bọtini wa, tẹ lori rẹ ki o yi aami\" ti a tẹ " pada si\"< b> button_is_clicked “.

11. Lọ si taabu\" Wọpọ " ki o samisi lori\" Ni Idojukọ " bi o ṣe n tẹle (Lati fun aifọwọyi aiyipada fun bọtini nipa dipo titẹsi) .

12. Bayi lati pẹpẹ apa osi, ṣẹda window tuntun "" Nipa Ifọrọwerọ ".

Ati pe iwọ yoo ṣe akiyesi pe a ṣẹda window\" Nipa Ifọrọwerọ ".

Jẹ ki a yipada rẹ .. Rii daju pe o fi awọn eto atẹle si fun lati pẹpẹ apa ọtun.

Lẹhin ṣiṣe awọn eto loke, iwọ yoo ni atẹle nipa Ferese.

Ninu ferese ti o wa loke, iwọ yoo ṣe akiyesi aaye ofo, ṣugbọn o le yọ kuro nipa didinku nọmba awọn apoti lati 3 si 2 tabi o le ṣafikun eyikeyi ẹrọ ailorukọ si rẹ ti o ba fẹ.

13. Nisisiyi fi faili pamọ sinu folda ile rẹ ni orukọ\" ui.glade " ki o ṣii olootu ọrọ ki o tẹ koodu atẹle si inu rẹ.

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

Fipamọ faili naa ninu itọsọna ile rẹ labẹ orukọ yẹn\" myprogram.py ", ki o fun ni ni igbaniṣẹ ṣiṣe ki o ṣiṣẹ.

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

Tẹ ọrọ sii ninu apoti iwọle, lu bọtini\" Tẹ " lori bọtini itẹwe naa, iwọ yoo ṣe akiyesi pe a tẹ gbolohun naa ni ikarahun naa.

Iyẹn ni gbogbo fun bayi, kii ṣe ohun elo pipe, ṣugbọn Mo kan fẹ lati fihan ọ bi o ṣe le sopọ awọn nkan papọ nipa lilo PyGObject , o le wo gbogbo awọn ọna fun gbogbo awọn ẹrọ ailorukọ GTK ni awọn ohun elo.

Kan kọ awọn ọna naa, ṣẹda awọn ẹrọ ailorukọ nipa lilo Glade , ki o so awọn ifihan agbara pọ nipa lilo faili Python, Iyẹn ni! Ko nira rara ni gbogbo ore mi.

A yoo ṣalaye awọn nkan tuntun diẹ sii nipa PyGObject ni awọn apakan atẹle ti jara, titi di igba naa wa ni imudojuiwọn ati maṣe gbagbe lati fun wa ni awọn asọye rẹ nipa nkan naa.