Aan de slag met grafische gebruikersinterfaces in Python

Inhoudsopgave

In deze tutorial gaan we Voorbeelden voor het implementeren van GUI-toepassingen in Python, er zijn veel modules om met een grafische interface te werken, hier hebben we voor gekozen Tkinter, omdat het vooraf is geïnstalleerd met Python en het zal ons helpen te zien hoe we op deze manier werken, hoewel we aan het einde een klein voorbeeld zullen zien van PyQt.

We kunnen controleren of Tkinter de module correct is geïnstalleerd met behulp van:

 python -m tkinter
OpmerkingIn Python 2 zou het de eerste t met een hoofdletter zijn: Tkinter, aangezien het in Python 3 werd hernoemd.

Als het correct is geïnstalleerd, zullen we zien dat een venster zoals hieronder wordt weergegeven:

Als we geen fout zien, geeft het aan dat het deze module niet kan vinden:

Om de module in Python 3 binnen Debian-distributies te installeren:

 sudo apt-get install python3-tk
Voor andere versies zie de volgende link. De tutorial is gericht op het geven van een eerste indruk over het werken met de GUI in Python, als je nieuw bent in dit onderwerp, dan zal het je helpen, als je op zoek bent naar geavanceerde onderwerpen is dit niet de juiste tutorial.

OpmerkingHier gaan we aan de slag met Python 3, we importeren de bibliotheek als volgt:

 import tkinter
In Python 2 moet je het echter als volgt importeren, we hebben het al gehad over de hernoeming ervan:
 importeer Tkinter

We gaan het voorbeeld van de zelfstudie als voorbeeld starten, we beginnen met de gemakkelijkste en maken het aan het einde ingewikkelder.

voorbeeld 1
We zullen een eenvoudig venster maken, hiervoor schrijven we de volgende code:

 import tkinter venster = tkinter.Tk () venster = tkinter.mainloop ()
Met de eerste regel importeren we de benodigde module, de volgende maakt het hoofdvenster aan en als we de laatste instructie verwijderen, wordt het venster niet gezien wanneer we de code uitvoeren. De uitvoer van het voorbeeld:

Dit voorbeeld is erg lang geweest, 3 regels … Laten we verder gaan met de volgende.

Voorbeeld 2
In dit voorbeeld, dat niet veel langer is dan het vorige, gaan we het venster maken zoals we in voorbeeld 1 hebben gedaan, maar we gaan het een beetje configureren, we zullen de kleur, grootte en titel veranderen.

 importeer tkinter als tk window = tk.Tk () window.config (bg = "blue") window.geometry ("400x300") window.title ("Example2") window.mainloop ()
De eerste regel importeert nog steeds de tkinter-module, maar we geven deze een alias zodat we een korter woord in de code kunnen gebruiken. We zullen het venster maken zoals in het vorige voorbeeld. En de volgende 3 regels zullen de kleur, grootte en titel in volgorde configureren. De laatste regel kennen we al. De uitvoer van het voorbeeld is als volgt:

Tot nu toe is alles heel gemakkelijk geweest, laten we doorgaan met meer voorbeelden.

Voorbeeld 3
Nu gaan we een knop maken in het hoofdvenster, wat ons ook niet veel zal compliceren, laten we de code eens bekijken:

 importeer tkinter als tk window = tk.Tk () window.geometry ("200x150") button = tk.Button (window, text = "Testing") button.grid (rij = 1, kolom = 1) window.mainloop ()
De enige regels die uitleg behoeven zijn:
 button = tk.Button (venster, tekst = "Testen") button.grid (rij = 1, kolom = 1)
De eerste maakt een knop met de naam Testing (knop), en we wijzen het toe aan raam, wat de variabele is van ons hoofdvenster. De tweede plaatst de knop in rij en kolom 1. Uitvoering laat ons het volgende zien:

De knop wordt gewoon weergegeven, het werkt niet, omdat het geen evenementen bedient, gaan we het in het volgende voorbeeld doen.

Voorbeeld 4
Nu zullen we een evenement bijwonen om een ​​tweede venster te openen, dat niet het hoofdvenster zal zijn, laten we de code eens bekijken:

 importeer tkinter als tk def open (): window2 = tk.Toplevel (window) window = tk.Tk () window.geometry ("200x150") button = tk.Button (window, text = "Open", command = open) button.grid (rij = 1, kolom = 1) window.mainloop () 
We gaan de nieuwe regels zien, de open-functie heeft de volgende instructie, die een "kind" -venster van het hoofdvenster zal maken.
 window2 = tk.Toplevel (venster)
En de knop heeft een kleine verandering, let op opdracht, is om een ​​functie uit te voeren, in dit geval om de functie aan te roepen open:
 button = tk.Button (venster, tekst = "Open", commando = open)
Laten we met een klas naar een voorbeeld gaan.

Voorbeeld 5
Dit is het laatste voorbeeld van tkinter, en het zal het langste zijn, we gaan een klas maken om iets anders te doen. Wat we gaan doen is een klein venster, waarvan de grootte niet kan worden gewijzigd, het zal een tekstlabel en een knop hebben, elke keer dat we op de knop drukken, zal het aantal toenemen. Laten we verder gaan met de code:

 importeer tkinter als tk class Application (): counter = 1 def __init __ (self): self.window = tk.Tk () self.window.geometry ("300x60") self.window.title ("Voorbeeld 5") self window.resizable (breedte = False, height = False) self.createButton () self.createLabel () self.window.mainloop () def createButton (self): self.button = tk.Button (self.window, text = " Verhogen ", command = self.increase) self.button.pack () def createLabel (self): self.tag = tk.Label (self.window, text =" 0 ", fg =" blue ") self.tag pack (pady = 10) def verhogen (zelf): self.tag ["text"] = self.counter self.counter + = 1 app = Applicatie () 
In functie __in het__ we gaan het venster maken en configureren, naast het aanroepen van de functies createKnop Y createLabel voor ons om deze elementen te geloven. Als we de vorige voorbeelden hebben gezien, zou deze geen complicaties of twijfels moeten veroorzaken. Bij het starten van het programma hebben we het venster met het nummer op 0:

Als we op de knop klikken, neemt het aantal toe, bijvoorbeeld na 25 keer klikken hebben we het volgende:

In deze tutorial hebben we de basis van de tkinter-module gezien, je zult in staat zijn om nog veel meer dingen te maken, als je geïnteresseerd bent om hier dieper op in te gaan, heb je de link naar de officiële Python-pagina waar ze over tkinter praten.

Je hebt andere bibliotheken in Python waarmee je grafische interfaces kunt programmeren zoals aan het begin gezegd, sommige zijn:

  • PyGTK
  • wxPython
  • PyQT

Zodat je tkinter een beetje kunt vergelijken met een andere module, gaan we een voorbeeld geven van PyQt.

Voorbeeld met PyQT
Om dit voorbeeld te starten: je moet de bibliotheek installeren, kunt u de link bezoeken die we hierboven hebben geplaatst. We gaan een venster maken met een afmeting van 275x200 en met de titel Voorbeeld PyQt4. Het verschijnt ook in positie 300x300

 import sys uit PyQt4 import QtGui applicatie = QtGui.QApplication (sys.argv) window = QtGui.QWidget () window.resize (275, 200) window.move (300, 300) window.setWindowTitle ('PyQt4 voorbeeld') window. show () sys.exit (application.exec_ ()) 
Als we de code uitvoeren, krijgen we de volgende uitvoer:

Niets ingewikkelds, hoe het in de hele tutorial is waargenomen, we kunnen doorgaan met het plaatsen van voorbeelden, omdat er veel is om aan te raken, maar met een inleiding bereidt het je al voor om te oefenen met het maken van je eigen voorbeelden, het toevoegen van andere elementen, zoals lijsten, vakken met tekst waar te schrijven, enz.

Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave