Website-Suche

Erstellen Sie erweiterte GUI-Anwendungen mit dem PyGobject Tool unter Linux – Teil 2


Wir setzen unsere Serie über die Erstellung von GUI-Anwendungen unter dem Linux-Desktop mit PyGObject fort. Dies ist der zweite Teil der Serie und heute werden wir über die Erstellung funktionalerer Anwendungen mit einigen erweiterten Widgets sprechen.

Anforderungen

  1. Erstellen Sie GUI-Anwendungen unter Linux mit PyGObject – Teil 1

Im vorherigen Artikel haben wir gesagt, dass es zwei Möglichkeiten gibt, GUI-Anwendungen mit PyGObject zu erstellen: die Code-only-Methode und die Glade-Designer-Methode , aber von nun an erklären wir nur noch den Glade-Designer-Weg, da er für die meisten Benutzer viel einfacher ist. Sie können den reinen Code-Weg mit dem Python-GTK3-Tutorial selbst erlernen.

Erstellen von erweiterten GUI-Anwendungen unter Linux

1. Beginnen wir mit dem Programmieren! Öffnen Sie Ihren Glade-Designer über das Anwendungsmenü.

2. Klicken Sie auf die Schaltfläche „Fenster“ in der linken Seitenleiste, um ein neues zu erstellen.

3. Klicken Sie auf das Widget „Box“ und lassen Sie es im leeren Fenster los.

4. Sie werden aufgefordert, die Anzahl der gewünschten Felder einzugeben, also 3.

Und Sie werden sehen, dass die Boxen erstellt werden. Diese Boxen sind für uns wichtig, um mehr als nur 1 Widget in einem Fenster hinzufügen zu können.

5. Klicken Sie nun auf das Box-Widget und ändern Sie den Ausrichtungstyp von vertikal in horizontal.

6. Um ein einfaches Programm zu erstellen, fügen Sie einen „Texteintrag“, einen „Kombinationsfeldtext“ und einen „Button“ hinzu Widgets für jede der Boxen, Sie sollten so etwas haben.

7. Klicken Sie nun in der rechten Seitenleiste auf das Widget „Fenster1“ und ändern Sie seine Position in „Mitte“.

Scrollen Sie nach unten zum Abschnitt „Erscheinungsbild“. Und fügen Sie einen Titel für das Fenster „Mein Programm“ hinzu.

8. Sie können auch ein Symbol für das Fenster auswählen, indem Sie auf das Feld „Symbolname“ klicken.

9. Sie können auch die Standard-Höhe und Breite für die Anwendung ändern. Nach all dem sollten Sie so etwas haben.

In jedem Programm ist es eines der wichtigsten Dinge, ein „Info“-Fenster zu erstellen. Dazu müssen wir zunächst die normale Schaltfläche, die wir zuvor erstellt haben, in eine Standardschaltfläche ändern. Sehen Sie sich das an das Bild.

10. Jetzt müssen wir einige Signale ändern, um bestimmte Aktionen auszuführen, wenn ein Ereignis in unseren Widgets auftritt. Klicken Sie auf das Widget Texteingabe, wechseln Sie zur Registerkarte „Signale“ in der rechten Seitenleiste, suchen Sie nach „aktiviert“ und ändern Sie den Handler in „enter_button_clicked“, das „activated“-Signal ist das Standardsignal, das gesendet wird, wenn die „Enter“-Taste gedrückt wird, während man sich auf den Text konzentriert Eintrags-Widget.

Wir müssen einen weiteren Handler für das Signal „geklickt“ für unser About-Button-Widget hinzufügen, darauf klicken und das Signal „geklickt“ in „button_is_clicked“ ändern “.

11. Gehen Sie zur Registerkarte „Allgemein“ und markieren Sie „Hat Fokus“ wie folgt (um den Standardfokus für die Schaltfläche „Info“ festzulegen statt des Eintrags).

12. Erstellen Sie nun in der linken Seitenleiste ein neues Fenster „Über Dialog“.

Und Sie werden feststellen, dass das Fenster „Über den Dialog“ erstellt wird.

Lassen Sie es uns ändern. Stellen Sie sicher, dass Sie die folgenden Einstellungen dafür in der rechten Seitenleiste einfügen.

Nachdem Sie die oben genannten Einstellungen vorgenommen haben, erhalten Sie Folgendes zum Fenster.

Im obigen Fenster werden Sie den leeren Bereich bemerken, aber Sie können ihn entfernen, indem Sie die Anzahl der Felder von 3 auf 2 verringern, oder Sie können bei Bedarf ein beliebiges Widget hinzufügen.

13. Speichern Sie nun die Datei in Ihrem Home-Ordner unter dem Namen „ui.glade“, öffnen Sie einen Texteditor und geben Sie den folgenden Code ein.


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

Speichern Sie die Datei in Ihrem Home-Verzeichnis unter dem Namen „myprogram.py“, erteilen Sie ihr die Ausführungsberechtigung und führen Sie sie aus.

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

Geben Sie einen Text in das Eingabefeld ein, drücken Sie die „Enter“-Taste auf der Tastatur und Sie werden feststellen, dass der Satz in der Shell gedruckt wird.

Das ist vorerst alles, es ist keine vollständige Anwendung, aber ich wollte Ihnen nur zeigen, wie Sie Dinge mit PyGObject miteinander verknüpfen. Sie können alle Methoden für alle GTK-Widgets unter anzeigen gtkobjects.

Erlernen Sie einfach die Methoden, erstellen Sie die Widgets mit Glade und verbinden Sie die Signale mithilfe der Python-Datei. Fertig! Es ist überhaupt nicht schwer, mein Freund.

Wir werden in den nächsten Teilen der Serie weitere Neuerungen zu PyGObject erklären. Bleiben Sie bis dahin auf dem Laufenden und vergessen Sie nicht, uns Ihre Kommentare zum Artikel mitzuteilen.

Verwandte Artikel: