Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

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:

Python GUI-ontwikkeling met Tkinter: Uitgebreide Gids

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

  1. Python Datatypes onder de knie krijgen: Een praktische gids
  2. Python Operators onder de knie krijgen: Een uitgebreide gids
  3. Python Pass Statement onder de knie krijgen: Een praktische gids
  4. Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
  5. Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
  6. Python Object-Oriented Programming beheersen: classes, inheritance, encapsulatie & polymorfisme
  7. Python-iterators: hoe ze werken en hoe je je eigen maakt
  8. Python-closures uitgelegd: hoe geneste functies variabelen vangen
  9. Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
  10. Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden
  11. Python Netwerkprogrammering: Sockets & Geavanceerde Protocols onder de knie