Python GUI-ontwikkeling met Tkinter: Uitgebreide Gids
Python biedt verschillende opties voor het ontwikkelen van grafische gebruikersinterfaces (GUI's). De belangrijkste zijn hieronder vermeld.
Tkinter - Tkinter is de Python-interface voor de Tk GUI-toolkit die meegeleverd wordt met Python. We bekijken deze optie in dit hoofdstuk.
wxPython - Dit is een open-source Python-interface voor wxWindows https://wxpython.org.
JPython - JPython is een Python-port voor Java die Python-scripts naadloze toegang geeft tot Java-klassenbibliotheken op de lokale machine https://www.jython.org.
Er zijn nog veel andere interfaces beschikbaar, die u op het net kunt vinden.
Tkinter Programmeren
Tkinter is de standaard GUI-bibliotheek voor Python. Python gecombineerd met Tkinter biedt een snelle en eenvoudige manier om GUI-applicaties te maken. Tkinter biedt een krachtige objectgeoriënteerde interface voor de Tk GUI-toolkit.
Het maken van een GUI-applicatie met Tkinter is een eenvoudige taak. Alles wat u hoeft te doen is de volgende stappen uit te voeren:
Importeer de Tkinter-module.
Maak het hoofdvenster van de GUI-applicatie aan.
Voeg een of meer van de bovenstaande widgets toe aan de GUI-applicatie.
Ga naar de hoofd-event-loop om actie te ondernemen tegen elke event die door de gebruiker wordt getriggerd.
Voorbeeld
#!/usr/bin/python import Tkinter top = Tkinter.Tk() # Code om widgets toe te voegen komt hier... top.mainloop()
Dit zou het volgende venster aanmaken:
Tkinter Widgets
Tkinter biedt diverse besturingselementen, zoals knoppen, labels en tekstvakken die in een GUI-applicatie worden gebruikt. Deze besturingselementen worden meestal widgets genoemd.
Er zijn momenteel 15 typen widgets in Tkinter. We presenteren deze widgets evenals een korte beschrijving in de volgende tabel:
| Nr. | Widget & Beschrijving |
|---|---|
| 1 | Button De Button-widget wordt gebruikt om knoppen in uw applicatie weer te geven. |
| 2 | Canvas De Canvas-widget wordt gebruikt om vormen te tekenen, zoals lijnen, ovalen, polygoenen en rechthoeken, in uw applicatie. |
| 3 | Checkbutton De Checkbutton-widget wordt gebruikt om een aantal opties als selectievakjes weer te geven. De gebruiker kan meerdere opties tegelijk selecteren. |
| 4 | Entry De Entry-widget wordt gebruikt om een eén-regels tekstvak weer te geven voor het accepteren van waarden van een gebruiker. |
| 5 | Frame De Frame-widget wordt gebruikt als container-widget om andere widgets te organiseren. |
| 6 | Label De Label-widget wordt gebruikt om een eén-regels bijschrift voor andere widgets te bieden. Het kan ook afbeeldingen bevatten. |
| 7 | Listbox De Listbox-widget wordt gebruikt om een lijst met opties aan een gebruiker te bieden. |
| 8 | Menubutton De Menubutton-widget wordt gebruikt om menu's in uw applicatie weer te geven. |
| 9 | Menu De Menu-widget wordt gebruikt om diverse commando's aan een gebruiker te bieden. Deze commando's zijn binnen Menubutton opgenomen. |
| 10 | Message De Message-widget wordt gebruikt om meervoudige tekstvakken weer te geven voor het accepteren van waarden van een gebruiker. |
| 11 | Radiobutton De Radiobutton-widget wordt gebruikt om een aantal opties als radioknoppen weer te geven. De gebruiker kan slechts één optie tegelijk selecteren. |
| 12 | Scale De Scale-widget wordt gebruikt om een slider-widget te bieden. |
| 13 | Scrollbar De Scrollbar-widget wordt gebruikt om scrollmogelijkheden toe te voegen aan diverse widgets, zoals lijstvensters. |
| 14 | Text De Text-widget wordt gebruikt om tekst in meerdere regels weer te geven. |
| 15 | Toplevel De Toplevel-widget wordt gebruikt om een apart venstercontainer te bieden. |
| 16 | Spinbox De Spinbox-widget is een variant van de standaard Tkinter Entry-widget, die gebruikt kan worden om te selecteren uit een vast aantal waarden. |
| 17 | PanedWindow Een PanedWindow is een container-widget die een willekeurig aantal panelen kan bevatten, gerangschikt horizontaal of verticaal. |
| 18 | LabelFrame Een labelframe is een eenvoudige container-widget. Het primaire doel is om als spacer of container te fungeren voor complexe vensterlay-outs. |
| 19 | tkMessageBox Deze module wordt gebruikt om berichtvensters in uw applicaties weer te geven. |
Laten we deze widgets in detail bestuderen:
Standaardattributen
Laten we eens kijken hoe enkele van hun gemeenschappelijke attributen, zoals formaten, kleuren en lettertypen, worden gespecificeerd.
Dimensies
Kleuren
Lettertypen
Ankers
Relief-stijlen
Bitmaps
Cursors
Laten we ze kort bestuderen:
Geometriebeheer
Alle Tkinter-widgets hebben toegang tot specifieke geometriebeheermethodes, die het doel hebben om widgets door de parent-widget-ruimte te organiseren. Tkinter blootstelt de volgende geometriebeheerklassen: pack, grid en place.
De pack()-methode - Deze geometriebeheerder organiseert widgets in blokken voordat ze in de parent-widget worden geplaatst.
De grid()-methode - Deze geometriebeheerder organiseert widgets in een tabel-achtige structuur in de parent-widget.
De place()-methode - Deze geometriebeheerder organiseert widgets door ze op een specifieke positie in de parent-widget te plaatsen.
Laten we de geometriebeheermethodes kort bestuderen:
Python
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python Pass Statement onder de knie krijgen: Een praktische gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
- Python Object-Oriented Programming beheersen: classes, inheritance, encapsulatie & polymorfisme
- Python-iterators: hoe ze werken en hoe je je eigen maakt
- Python-closures uitgelegd: hoe geneste functies variabelen vangen
- Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
- Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden
- Python Netwerkprogrammering: Sockets & Geavanceerde Protocols onder de knie