Python

Hoe maak je een Hello World-applicatie in Python met Tkinter

Hoe maak je een Hello World-applicatie in Python met Tkinter

De Tkinter- of "TK Interface" -module biedt verschillende klassen en functies om platformonafhankelijke grafische toepassingen in Python te maken met behulp van het "Tk UI" -framework. Tkinter is opgenomen in de standaardmodules die worden geleverd met Python-builds, ook al wordt het onderhouden door ActiveState. Het is een van de meest populaire GUI-toolkits die beschikbaar is voor Python, handig voor zowel het maken van snelle prototypes als voor de ontwikkeling van volwaardige applicaties. Dit artikel bevat een handleiding over de installatie van Tkinter in Linux, enkele codevoorbeelden en hun uitleg om een ​​eenvoudige "Hello World" -toepassing te maken.

Tkinter installeren

U kunt Tkinter voor Python 3 in Ubuntu installeren door de onderstaande opdracht uit te voeren:

$ sudo apt install python3-tk

Tkinter kan in andere op Linux gebaseerde distributies worden geïnstalleerd vanuit de pakketbeheerder. Je kunt Tkinter-pakketten ook in Linux installeren door de installatie-instructies te volgen die hier beschikbaar zijn.

Voer de onderstaande opdracht uit om te controleren of Tkinter met succes op uw systeem is geïnstalleerd:

$ python3 -m tkinter

Als Tkinter correct is geïnstalleerd, zou u een GUI-venster als dit moeten zien:

U kunt ook een Python-interpreter gebruiken om de installatie van Tkinter . te verifiëren. Voer hiervoor achtereenvolgens de volgende opdrachten uit (de laatste twee opdrachten worden uitgevoerd in de Python-interpreter):

$ python3
import tkinter
afdrukken (tkinter.TclVersie)

Een Hello World-toepassing maken met Tkinter

U kunt een eenvoudige applicatie maken met "Hallo wereld !!” tekenreeks met behulp van het onderstaande codevoorbeeld:

van tkinter import *
wortel = Tk()
wortel.titel ("Hallo wereld")
main_string = Label(root, tekst = "Hallo wereld .) !!")
main_string.pak()
wortel.Hoofdlus()

De eerste instructie in het bovenstaande codevoorbeeld importeert de benodigde functies uit de Tkinter-module. In plaats van specifieke functies te importeren, wordt alles in één keer geïmporteerd met het teken "*" (sterretje). Vervolgens wordt de hoofdtoepassing of het hoofdvenster gedefinieerd en wordt er een "Hello World"-titel voor ingesteld. Een nieuwe labelwidget met 'Hallo wereld' !!” string wordt gemaakt in de volgende instructie. De "pack"-methode wordt gebruikt om automatisch de grootte van het venster aan te passen en overeen te laten komen met de positie en het gebied van de widget zonder de zichtbaarheid van de widget af te snijden, aangezien er geen geometrie is gespecificeerd. Ten slotte wordt de hoofdgebeurtenislus uitgevoerd die luistert naar gebruikersgebeurtenissen zoals toetsenbord- en muisinvoeracties. Zodra de hoofdlus met succes is uitgevoerd, zou u een toepassingsvenster als dit moeten zien:


Merk op dat de applicatietitel niet volledig wordt weergegeven in de titelbalk. De "pack"-methode zonder enige argumenten past het hoofdvenster van het programma automatisch aan het gebied met zichtbare widgets aan. Omdat het toepassingsvenster te klein is, kunt u de grootte handmatig specificeren met behulp van de "geometrie"-methode om auto-fit te voorkomen.

van tkinter import *
wortel = Tk()
wortel.titel ("Hallo wereld")
wortel.geometrie ("640x480")
main_string = Label(root, tekst = "Hallo wereld .) !!")
main_string.pak()
wortel.Hoofdlus()

U kunt ook een opvulargument toevoegen aan de pack-methode die wordt gebruikt voor de labelwidget om het gebied van het hoofdvenster van de toepassing te vergroten door de widget uit te rekken.

van tkinter import *
wortel = Tk()
wortel.titel ("Hallo wereld")
main_string = Label(root, tekst = "Hallo wereld .) !!")
main_string.pak(padx=50, pady=50)
wortel.Hoofdlus()

De twee argumenten, "padx" en "pady" specificeren respectievelijk horizontale en verticale afstand aan beide zijden van de widget.

Pack-methode is een van de belangrijkste methoden die u zult gebruiken bij het maken van gebruikersinterfaces met behulp van de Tkinter-bibliotheek. Widgets verschijnen niet in het hoofdframe van de applicatie, tenzij u de pack-methode aanroept op elke widget die u in de code hebt gedefinieerd. U kunt de pack-methode gebruiken om dynamische en vaste geometrie en positie van de widgets te definiëren. Widgets kunnen in elkaar worden gepakt om ook geneste widgets te maken. U kunt meer lezen over de pakketmethode en nog een paar voorbeelden ervan in de gebruiksreferentie.

Verder lezen

Om meer te weten te komen over Tkinter API kun je een gids gebruiken die beschikbaar is in de officiële Python-documentatie. TkDocs biedt een uitstekende tutorial die kan helpen bij het maken van je eerste Tkinter-app, hoewel de gids misschien een beetje ingewikkeld is voor absolute beginners. U kunt officiële Tkinter-handleidingen met API-definities en voorbeelden vinden op de Tcl Developer Xchange-website. De Tkinter-pagina van Python Wiki bevat talloze links die u kunnen helpen om aan de slag te gaan.

Conclusie

Dit artikel behandelt slechts een eenvoudig voorbeeld om u op weg te helpen met Tkinter-toepassingen. U kunt geavanceerde GUI's maken met Tkinter, maar voor toepassingen die complexe gebruikersinterface-elementen vereisen, geven veel ontwikkelaars de voorkeur aan PyQt boven Tkinter. PyQt heeft ook meer ingebouwde widgets dan Tkinter, inclusief een grafische suite voor het ontwerpen van applicaties met slepen en neerzetten.

Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...
Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...
Shadow of the Tomb Raider voor Linux-zelfstudie
Shadow of the Tomb Raider is de twaalfde toevoeging aan de Tomb Raider-serie - een actie-avonturengame-franchise gemaakt door Eidos Montreal. De game ...