Vyhledávání na webu

Vytvářejte další pokročilé aplikace GUI pomocí nástroje PyGobject v Linuxu – část 2


Pokračujeme v naší sérii o vytváření GUI aplikací pod Linuxem pomocí PyGObject, Toto je druhá část série a dnes budeme hovořit o vytváření funkčnějších aplikací pomocí některých pokročilých widgetů.

Požadavky

  1. Vytváření aplikací GUI pod Linuxem pomocí PyGObject – Část 1

V předchozím článku jsme řekli, že existují dva způsoby, jak vytvářet GUI aplikace pomocí PyGObject: pouze kód a Glade návrhářský způsob , ale od nynějška budeme vysvětlovat pouze způsob návrháře Glade, protože je pro většinu uživatelů mnohem snazší, můžete se naučit pouze kódem sami pomocí python-gtk3-tutorial.

Vytváření Advance GUI aplikací v Linuxu

1. Začněme programovat! Otevřete svůj návrhář Glade z nabídky aplikací.

2. Kliknutím na tlačítko „Okno “ na levém postranním panelu vytvoříte nové.

3. Klikněte na widget „Box “ a uvolněte jej v prázdném okně.

4. Budete vyzváni k zadání počtu polí, které chcete, nastavte na 3.

A uvidíte, že boxy jsou vytvořeny, tyto boxy jsou pro nás důležité, abychom do okna mohli přidat více než jen 1 widget.

5. Nyní klikněte na widget box a změňte typ orientace z vertikální na horizontální.

6. Chcete-li vytvořit jednoduchý program, přidejte „Textový záznam “, „Text kombinovaného pole “ a „tlačítko ” widgety pro každý z boxů, měli byste mít něco takového.

7. Nyní klikněte na widget „window1 “ na pravém postranním panelu a změňte jeho pozici na „Střed“.

Přejděte dolů do sekce „Vzhled “. A přidejte název okna „Můj program“.

8. Můžete také vybrat ikonu pro okno kliknutím na pole „Název ikony“.

9. Můžete také změnit výchozí výšku a šířku aplikace. Po tom všem byste měli mít něco takového.

V každém programu je jednou z nejdůležitějších věcí vytvořit okno „O“, abychom to udělali, musíme nejprve změnit normální tlačítko, které jsme vytvořili předtím, na tlačítko stock, podívejte se obrázek.

10. Nyní budeme muset upravit některé signály, abychom spustili konkrétní akce, když na našich widgetech dojde k jakékoli události. Klikněte na widget textový vstup, v pravém postranním panelu přepněte na kartu „Signals“, vyhledejte „aktivováno“ a změňte jeho obsluhu na „enter_button_clicked “, signál „activated“ je výchozí signál, který se odešle, když je stisknuta klávesa „Enter“ při zaostřování na text vstupní widget.

Budeme muset přidat další obslužný program pro signál „clicked “ pro náš widget tlačítka About, kliknout na něj a změnit signál „clicked“ na „button_is_clicked“ “.

11. Přejděte na kartu „Common“ a označte „Má zaměření“ následovně (Chcete-li nastavit výchozí zaměření pro tlačítko Informace místo záznamu).

12. Nyní z levého postranního panelu vytvořte nové okno „O dialogovém okně“.

A všimnete si, že je vytvořeno okno „O dialogovém okně“.

Pojďme to upravit. Ujistěte se, že jste pro něj vložili následující nastavení z pravého postranního panelu.

Po provedení výše uvedených nastavení získáte následující informace o okně.

Ve výše uvedeném okně si všimnete prázdného místa, ale můžete jej odstranit snížením počtu políček ze 3 na 2 nebo do něj můžete přidat libovolný widget, pokud chcete.

13. Nyní uložte soubor do své domovské složky pod názvem „ui.glade“ a otevřete textový editor a zadejte do něj následující kód.


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

Uložte soubor do svého domovského adresáře pod tímto názvem „myprogram.py“ a dejte mu oprávnění ke spuštění a spusťte jej.

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

Zadejte text do vstupního pole, stiskněte klávesu „Enter“ na klávesnici a všimnete si, že věta je vytištěna na plášti.

To je prozatím vše, není to úplná aplikace, ale jen jsem vám chtěl ukázat, jak propojit věci dohromady pomocí PyGObject, všechny metody pro všechny widgety GTK si můžete prohlédnout na gtkoobjekty.

Stačí se naučit metody, vytvořit widgety pomocí Glade a propojit signály pomocí souboru Python, je to! Není to vůbec těžké, příteli.

Více nových věcí o PyGObject vysvětlíme v dalších dílech série, do té doby zůstaňte aktualizováni a nezapomeňte nám dát své komentáře k článku.