So erstellen Sie GUI -Anwendungen unter Linux -Desktop mit PyGObject - Teil 1

So erstellen Sie GUI -Anwendungen unter Linux -Desktop mit PyGObject - Teil 1

Das Erstellen von Anwendungen unter Linux kann auf unterschiedliche Möglichkeiten erfolgen, aber es gibt nur begrenzte Möglichkeiten. Desktop Verwendet die GTK+ -Bibliothek mit Python -Programmiersprache, die genannt wird “Pygobjekt”.

Pygobjekt Verwendet die Gobject Introspection, um Bindungen für Programmiersprachen wie Python zu erzeugen. PygObject ist die nächste Generation von PyGTK.

Erstellen Sie GUI -Anwendungen unter Linux - Teil 1

Heute starten wir eine Serie über das Erstellen von GUI -Anwendungen (Grafical User Interface) unter dem Linux -Desktop mit GTK+ Library und Pygobjekt Sprache, die Serie wird die folgenden Themen behandeln:

Teil 1: So erstellen Sie GUI -Anwendungen unter Linux -Desktop mit PygObject Teil 2: Erstellen Sie weitere Voranwendungsanwendungen auf Linux Teil 3: Erstellen Sie Ihre eigenen Anwendungen "Webbrowser" und "Desktop Recorder" mithilfe von PygObject Teil 4: Verpackung Pygobject -Programme für den Linux -Desktop Teil 5: Übersetzen von Pygobject -Anwendungen in verschiedene Sprachen
Über Python

Zunächst müssen Sie in Python über Grundkenntnisse verfügen Python ist eine sehr moderne und einfach zu verwendende Programmiersprache. Es ist eine der berühmtesten Programmiersprachen der Welt. Mit Python können Sie viele großartige Anwendungen und Tools erstellen. Sie können einige kostenlose Kurse wie die bei Codeacademy belegen.com oder Sie können einige Bücher über Python lesen unter:

Über GTK+

Gtk+ ist ein plattformübergreifendes Open-Source GUIs erstellen. GTK+ wird unter der LGPL -Lizenz veröffentlicht.

Erstellen von GUI -Anwendungen unter Linux

Es gibt 2 Möglichkeiten zum Erstellen der Anwendungen mit GTK+ & Python:

  1. Schreiben Sie die grafische Schnittstelle nur mit Code mit Code.
  2. Entwerfen der grafischen Schnittstelle mit der “Lichtung" Programm; Das RAD -Tool zum Entwerfen von GTK+ -Knoten problemlos erzeugt Glade die GUI als XML Programm, um die Jobs zu erledigen, die wir wollen.

Wir werden kurz in beide Richtungen erklären.

Der Codes-Weg

Das Schreiben der GUI mit Code kann nur für Noob-Programmierer und sehr zeitlich schwierig sein.

Nehmen wir das folgende Beispiel.

#!/usr/bin/python #-*-Codierung: UTF-8-*-Von GI.Repository importieren GTK -Klasse OurWindow (GTK.Fenster): def __init __ (Selbst): GTK.Fenster.__init __ (selbst,) gtk.Fenster.set_default_size (self, 400,325) GTK.Fenster.set_position (self, gtk.Fensterposition.Mitte) Button1 = GTK.Button ("Hallo, Welt!") Knopf 1.Connect ("Clicked", Selbst.Whenbutton1_Clicked) Selbst.Hinzufügen (Button1) def, wenn Button1_clicked (Selbst, Schaltfläche): Druck "Hallo, Welt!"Fenster = OurWindow () Fenster.Connect ("Delete-Event", GTK.Main_quit) Fenster.show_all () gtk.hauptsächlich() 

Kopieren Sie den obigen Code, fügen Sie ihn in eine "ein" ein "prüfen.pyDatei und 755 Berechtigung für den Test festlegen.PY -Datei und die Datei später mit “ausführen“./prüfen.py”, Das werden Sie bekommen.

# Nano -Test.PY # CHMOD 755 Test.PY # ./prüfen.py 
Hallo Weltskript

Wenn Sie auf die Schaltfläche klicken, sehen Sie die “Hallo Welt!Im Terminal ausgedruckt: ”Satz:

Python -Skript testen

Lassen Sie mich den Code in detaillierter Erklärung erklären.

  1. #!/usr/bin/python: Der Standardpfad für den Python -Interpreter (Version 2.7 In den meisten Fällen muss diese Zeile die erste Zeile in jeder Python -Datei sein.
  2. # -* -Codierung: UTF -8 -*-: Hier setzen wir die Standardcodierung für die Datei, UTF-8 ist das Beste, wenn Sie nicht englische Sprachen unterstützen möchten. Lassen Sie sie so.
  3. von gi.Repository -Import GTK: Hier importieren wir die GTK 3 -Bibliothek, um sie in unserem Programm zu verwenden.
  4. Klasse Ourwindow (GTK.Fenster): Hier erstellen wir eine neue Klasse, die als „Ourwindow“ bezeichnet wird. Wir setzen auch den Klassenobjekttyp auf einen „GTK.Fenster".
  5. def __init __ (Selbst): Nichts Neues, wir definieren die Hauptfensterkomponenten hier.
  6. Gtk.Fenster.__init __ (self, title = ”Mein Hello World -Programm”): Wir nutzen diese Zeile, um den Titel "My Hello World Program" in "OurWindow" -Ffenster festzulegen. Sie können den Titel ändern, wenn Sie möchten.
  7. Gtk.Fenster.set_default_size (self, 400,325): Ich glaube nicht, dass diese Zeile Erklärung braucht. Hier setzen wir die Standardbreite und Höhe für unser Fenster ein.
  8. Gtk.Fenster.set_position (self, gtk.Fensterposition.CENTER): Mit dieser Zeile können wir die Standardposition für das Fenster festlegen. In diesem Fall setzen wir sie mit dem „GTK.Fensterposition.Center ”Parameter, wenn Sie möchten, können Sie ihn in„ GTK) ändern.Fensterposition.Maus “, um das Fenster auf der Mauszeigerposition zu öffnen.
  9. Button1 = GTK.Button („Hallo, Welt!”)): Wir haben einen neuen GTK erstellt.Schaltfläche, und wir nannten es "Button1", der Standardtext für die Schaltfläche "Hallo, Welt" ist!”, Sie können ein GTK -Widget erstellen, wenn Sie möchten.
  10. Knopf 1.Connect ("Clicked", Selbst.Whenbutton1_clicked): Hier verknüpfen wir das Signal "Klicken" mit der Aktion "Whenbutton1_clicked", sodass beim Klicken der Schaltfläche die Aktion "Whenbutton1_clicked" aktiviert ist.
  11. selbst.add (button1): Wenn wir möchten, dass unsere GTK -Widgets angezeigt werden, müssen wir sie dem Standardfenster hinzufügen. Diese einfache Zeile fügt das Widget "Taste1" dem Fenster hinzu. Es ist sehr notwendig, dies zu tun.
  12. Def Whenbutton1_clicked (Selbst, Schaltfläche): Jetzt definieren wir die Aktion "Whenbutton1_clicked" hier, wir definieren, was passieren wird, wenn das Widget „Button1“ klickt, der Parameter „(Selbst, Schaltfläche)“ ist wichtig, um den Signal übergeordneten Objekttyp spezifisch zu spezifizieren.
  13. Druck „Hallo, Welt!”: Ich muss hier nicht mehr erklären.
  14. Fenster = Ourwindow (): Wir müssen eine neue globale Variable erstellen und sie auf die uswindow () -Klasse einstellen, damit wir sie später mit der GTK+ -Bibliothek aufrufen können.
  15. Fenster.Connect ("Delete-Event", GTK.main_quit): Jetzt verbinden wir das Signal "Delete-Event" mit dem "GTK".Main_quit ”Aktion, dies ist wichtig, um alle Widgets zu löschen, nachdem wir unser Programmfenster automatisch geschlossen haben.
  16. Fenster.zeige alles(): Das Fenster anzeigen.
  17. Gtk.hauptsächlich(): Ausführen der GTK -Bibliothek.

Das ist es, einfach ist es nicht? Und sehr funktional, wenn wir einige große Anwendungen erstellen möchten. Weitere Informationen zum Erstellen von GTK+ -Knoten unter Verwendung der CODE-Art und Weise besuchen Sie die offizielle Dokumentations-Website unter:

Python GTK3 Tutorials

Der Glade -Designer Weg

Wie ich zu Beginn des Artikels sagte, ist Glade ein sehr einfaches Werkzeug, um die Schnittstellen zu erstellen, die wir für unsere Programme benötigen. Dieser Weg wird als "Rapid Applications Development" bezeichnet.

Sie müssen Glade installieren, um es auf Debian/Ubuntu/Mint Run zu verwenden:

$ sudo apt-Gehen Sie die Glade installieren 

Auf Redhat/Fedora/Centos run:

# Yum Installieren Sie die Glade 

Nachdem Sie das Programm heruntergeladen und installiert haben und nach dem Ausführen die verfügbaren GTK -Widgets links sehen, klicken Sie auf die “FensterWidget, um ein neues Fenster zu erstellen.

Erstellen Sie neues Widget

Sie werden feststellen, dass ein neues leeres Fenster erstellt wird.

Neues Fenster -Widget

Sie können jetzt einige Widgets in der linken Symbolleiste hinzufügen, klicken Sie auf die “TasteWidget und klicken Sie auf das leere Fenster, um die Schaltfläche zum Fenster hinzuzufügen.

Widget hinzufügen

Sie werden feststellen, dass die Button -ID lautet "Knopf 1”, Beachten Sie nun die Registerkarte Signale in der richtigen Symbolleiste und suchen Sie nach dem“geklickt”Signal und eingeben“Button1_Clicked" darunter.

Taste Eigenschaften Registerkarte "Signale"

Nachdem wir unsere GUI erstellt haben, exportieren wir sie. Klick auf das "Datei"Menü" und wählen Sie "Speichern", Speichern Sie die Datei in Ihrem Heimverzeichnis im Namen"MyProgramm.LichtungUnd beenden.

Exportieren Sie die Widget -Datei

Erstellen Sie jetzt ein neues “prüfen.pyDatei und geben Sie den folgenden Code darin ein.

#!/usr/bin/python #-*-Codierung: UTF-8-*-Von GI.Repository importieren GTK -Klasse Handler: DEF Button_1Clicked (Selbst, Schaltfläche): Druck "Hallo, Welt!"builder = gtk.Builder () Builder.add_from_file ("myProgram.Glade ") Erbauer.Connect_signals (Handler ()) uNeNewbutton = Builder.get_object ("button1") ourNewbutton.set_label ("Hallo, Welt!") Fenster = Erbauer.Get_Object ("Fenster1") Fenster.Connect ("Delete-Event", GTK.Main_quit) Fenster.show_all () gtk.hauptsächlich() 

Speichern Sie die Datei, geben Sie ihr 755 Berechtigungen wie zuvor und führen Sie sie mit “aus./prüfen.py”, Und das werden Sie bekommen.

# Nano -Test.PY # CHMOD 755 Test.PY # ./prüfen.py 
Hallo Weltfenster

Klicken Sie auf die Schaltfläche und Sie werden feststellen, dass die “Hallo Welt!Der Satz wird im Terminal gedruckt.

Lassen Sie uns nun die neuen Dinge erklären:

  1. Klassenhandler: Hier erstellen wir eine Klasse namens „Handler“, die die Definitionen für die Aktionen und Signale enthält. Wir erstellen für die GUI.
  2. Builder = gtk.Erbauer (): Wir haben eine neue globale Variable namens "Builder" erstellt, bei der es sich um GTK handelt.Builder Widget, dies ist wichtig, um die zu importieren .Gladedatei.
  3. Erbauer.add_from_file (“MYPROGRAM.Lichtung"): Hier importieren wir das „MyProgram.Die Datei der Glade ”verwendet, um sie als Standard -GUI für unser Programm zu verwenden.
  4. Erbauer.Connect_signals (Handler ()): Diese Zeile verbindet die .Glade -Datei mit der Handlerklasse, damit die Aktionen und Signale, die wir unter der Klassenklasse definieren, bei der Ausführung des Programms gut funktionieren.
  5. us ursNewbutton = builder.get_object ("button1"): Jetzt importieren wir das Objekt "Button1" aus dem .Glade -Datei, wir übergeben sie auch an die globale Variable „Ultralerbutton“, um sie später in unserem Programm zu verwenden.
  6. OurNewbutton.set_label („Hallo, Welt!”)): Wir haben das „Set benutzt.Etikettieren Sie die Methode "Standard", um den Standard -Schaltflächentext auf die "Hallo, Welt" festzulegen!" Satz.
  7. Fenster = Erbauer.get_object ("window1"): Hier haben wir das "Fenster1" -Objekt aus dem genannt .Glade -Datei, um sie später im Programm anzuzeigen.

Und das ist es! Sie haben Ihr erstes Programm unter Linux erfolgreich erstellt!

Natürlich gibt es viel kompliziertere Dinge zu tun, um eine echte Anwendung zu erstellen, die etwas bewirkt. Deshalb empfehle ich Ihnen, einen Blick auf die GTK+ -Dokumentation und die Gobject -API zu werfen:

  1. GTK+ Referenzhandbuch
  2. Python Gobject API Referenz
  3. Pygobject Referenz

Haben Sie zuvor eine Anwendung unter dem Linux -Desktop entwickelt?? Welche Programmiersprache und Tools haben es verwendet? Was denken Sie über das Erstellen von Anwendungen mit Python & GTK 3?