Ricerca nel sito web

Crea più applicazioni GUI avanzate utilizzando lo strumento PyGobject in Linux - Parte 2


Continuiamo la nostra serie sulla creazione di applicazioni GUI sotto il desktop Linux utilizzando PyGObject. Questa è la seconda parte della serie e oggi parleremo della creazione di applicazioni più funzionali utilizzando alcuni widget avanzati.

Requisiti

  1. Creare applicazioni GUI sotto Linux utilizzando PyGObject – Parte 1

Nell'articolo precedente abbiamo detto che ci sono due modi per creare applicazioni GUI utilizzando PyGObject: il metodo solo codice e il modo designer Glade , ma da ora in poi spiegheremo solo il metodo di progettazione Glade poiché è molto più semplice per la maggior parte degli utenti; puoi imparare il metodo solo codice da solo utilizzando python-gtk3-tutorial.

Creazione di applicazioni GUI avanzate in Linux

1. Iniziamo a programmare! Apri il tuo designer Glade dal menu delle applicazioni.

2. Fai clic sul pulsante "Finestra" nella barra laterale sinistra per crearne una nuova.

3. Fai clic sul widget "Box" e rilascialo nella finestra vuota.

4. Ti verrà richiesto di inserire il numero di caselle che desideri, impostalo 3.

E vedrai che vengono creati i riquadri, quei riquadri sono importanti per noi per poter aggiungere più di un semplice 1 widget in una finestra.

5. Ora fai clic sul widget casella e modifica il tipo di orientamento da verticale a orizzontale.

6. Per creare un programma semplice, aggiungere una "Voce di testo", "Testo casella combinata" e un "Pulsante "widget per ciascuna delle caselle, dovresti avere qualcosa di simile a questo.

7. Ora fai clic sul widget "finestra1" dalla barra laterale destra e modifica la sua posizione in "Centro".

Scorri verso il basso fino alla sezione "Aspetto". Aggiungi un titolo per la finestra "Il mio programma".

8. Puoi anche scegliere un'icona per la finestra facendo clic sulla casella "Nome icona".

9. Puoi anche modificare l'altezza e la larghezza predefinite per l'applicazione. Dopo tutto ciò, dovresti avere qualcosa di simile a questo.

In qualsiasi programma, una delle cose più importanti è creare una finestra "Informazioni", per fare questo, prima dovremo cambiare il pulsante normale che abbiamo creato prima in un pulsante standard, guarda la foto.

10. Ora dovremo modificare alcuni segnali per eseguire azioni specifiche quando si verifica un evento sui nostri widget. Fai clic sul widget immissione testo, passa alla scheda "Segnali" nella barra laterale destra, cerca "attivato" e modifica il relativo gestore in “clicca_pulsante_invio”, il segnale “attivato” è il segnale predefinito che viene inviato quando viene premuto il tasto “Invio” mentre si è concentrati sul testo widget di ingresso.

Dovremo aggiungere un altro gestore per il segnale "cliccato" per il nostro widget del pulsante Informazioni, fare clic su di esso e modificare il segnale "cliccato" in "pulsante_è_cliccato" “.

11. Vai alla scheda "Comuni " e seleziona "Ha focus " come segue (per assegnare il focus predefinito al pulsante Informazioni invece della voce).

12. Ora, dalla barra laterale sinistra, crea una nuova finestra "Informazioni".

Noterai che viene creata la finestra "Informazioni sulla finestra di dialogo".

Modifichiamolo.. Assicurati di inserire le seguenti impostazioni dalla barra laterale destra.

Dopo aver effettuato le impostazioni di cui sopra, seguirai Windows.

Nella finestra sopra noterai lo spazio vuoto, ma puoi rimuoverlo diminuendo il numero di caselle da 3 a 2 oppure puoi aggiungervi qualsiasi widget se lo desideri.

13. Ora salva il file nella tua cartella home con il nome “ui.glade ” e apri un editor di testo e inserisci al suo interno il seguente codice.


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

Salva il file nella tua directory home con quel nome "myprogram.py", dagli il permesso di esecuzione ed eseguilo.

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

Inserisci un testo nella casella di immissione, premi il tasto "Invio" sulla tastiera e noterai che la frase è stampata sulla shell.

Per ora è tutto, non è un'applicazione completa, ma volevo solo mostrarti come collegare le cose insieme usando PyGObject, puoi visualizzare tutti i metodi per tutti i widget GTK su gtkobjects.

Impara semplicemente i metodi, crea i widget usando Glade e collega i segnali usando il file Python, questo è tutto! Non è affatto difficile amico mio.

Spiegheremo altre novità su PyGObject nelle prossime parti della serie, fino ad allora rimani aggiornato e non dimenticare di fornirci i tuoi commenti sull'articolo.