Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Gewichten zijn een van de meest voorkomende maten die u in het dagelijks leven moet omrekenen, aangezien verschillende landen verschillende eenheden gebruiken. Soms gebruikt een enkel land verschillende eenheden! Een eenvoudige gewichtsomzetter-app kan erg handig zijn.

Het ontwikkelen van zo'n applicatie is een eenvoudige manier om je programmeervaardigheden in Python te trainen. Leer een GUI bouwen en je kunt binnenkort beginnen met het bouwen van games als Tic Tac Toe, Snake en Flappy Bird.

Dus hoe kun je de Tkinter-module gebruiken om een ​​toepassing voor gewichtsconversie te bouwen met behulp van Python?

De Tkinter-module

Tkinter is de standaard Python-interface voor de Tk GUI-toolkit waarmee u desktop-applicaties kunt maken. Het biedt een verscheidenheid aan widgets zoals knoppen, labels, tekstvakken en lay-outmanagers die het gemakkelijk maken om zonder veel moeite applicaties te ontwikkelen.

instagram viewer

Enkele van de applicaties die u met Tkinter kunt bouwen, zijn onder meer een GUI-kalender, een wekker, een rekenmachine, een notitieblok, een verfapplicatie en typen test spel. Om Tkinter in uw systeem te installeren, opent u een terminal en voert u het volgende uit:

pip installeer tkinter

Een toepassing voor gewichtsconversie bouwen met behulp van Python

Hierin vindt u de broncode van de toepassing Weight Conversion met behulp van Python GitHub-opslagplaats.

Importeer de Tkinter-module. Initialiseer de Tkinter-instantie en geef het hoofdvenster weer. Stel de afmetingen in pixels en de titel van het venster in.

importeren tkinter als tk
van tkinter importeren *

venster = Tk()
venster.titel("Gewichtsomzetter-app")
venster.geometrie("750x500")

Definieer een labelwidget om de koptekst van de toepassing weer te geven. Geef het bovenliggende venster op waarin u het wilt plaatsen, de tekst die het moet weergeven, de letterstijl en de letterkleur. Organiseer de widgets in blokken voordat u ze in de bovenliggende widget plaatst met behulp van de pak() methode.

Definieer een functie, convert_to_gram(). Gebruik de krijgen() functie om de gegevens op te halen die de gebruiker verstrekt. Vermenigvuldig de waarde met 1000 om het in grammen te krijgen. Maak een label om het gewicht in gram weer te geven en een ander label om de berekende waarde weer te geven.

Label (venster, tekst="Gewichtsomzetter-app",lettertype=("Ariel", 36 ),fg='#A020F0'.pakket()
kg = tk. IntVar()

defconverteer_naar_gram():
kg1 = kg.get()
gram = vlotter (kg1) * 1000
Label (venster, tekst="Gewicht in grammen:",lettertype=("Ariel", 18 )).pakket()
Label (venster, tekst=gram, lettertype=("Ariel", 18 )).pakket()

Definieer op dezelfde manier twee functies, convert_to_ounce() En converteren naar pond(). Voer dezelfde stappen uit als de bovenstaande functies. Vermenigvuldig de waarde met 35,274 om kilogrammen om te rekenen naar ounces. Vermenigvuldig met 2,20462 om naar ponden te gaan.

defconvert_to_ounce():
kg1 = kg.get()
ounce = vlotter (kg1) * 35.274
Label (venster, tekst="Gewicht in ons:",lettertype=("Ariel", 18 )).pakket()
Label (venster, tekst=ounce, lettertype=("Ariel", 18 )).pakket()

defconvert_to_pound():
kg1 = kg.get()
pond = vlotter (kg1) * 2.20462
Label (venster, tekst="Gewicht in ponden:",lettertype=("Ariel", 18 )).pakket()
Label (venster, tekst=pond, lettertype=("Ariel", 18 )).pakket()

Declareer een label en vraag de gebruiker om het gewicht in kilogrammen in te voeren. Definieer een invoerwidget om invoer van de gebruiker te krijgen Specificeer het bovenliggende venster waarin u deze widget wilt plaatsen, tekstvariabele om een ​​waarde aan een variabele te geven, en de lettertypestijl. Organiseer de widget met behulp van de pakketbeheerder.

Definieer drie knoppen om het gewicht in kg om te zetten in gram, ounce en pond. Geef het venster op waarin u ze wilt plaatsen, de tekst die moet worden weergegeven, de achtergrondkleur, de letterkleur, de functie die moet worden uitgevoerd wanneer erop wordt geklikt en de letterstijl. Organiseer en specificeer wat opvulling, zodat de knoppen niet aan elkaar plakken.

Label (venster, tekst="Voer het gewicht in kg in",lettertype=("Ariel", 18 )).pakket()
Invoer (venster, tekstvariabele=kg, font=('arieel', '13')).pakket()

Knop (venster, tekst="Converteren naar gram",bg="#A020F0", fg="#E0FFFF", commando=convert_to_gram, lettertype=('arieel', '13')).pak (pady=10)
Knop (venster, tekst="Converteren naar ons",bg="#A020F0", fg="#E0FFFF",command=convert_to_ounce, font=('arieel', '13')).pak (pady=8)
Knop (venster, tekst="Omrekenen naar pond",bg="#A020F0", fg="#E0FFFF",command=convert_to_pound, font=('arieel', '13')).pak (pady=8)

De Hoofdlus() functie vertelt Python om de Tkinter-gebeurtenislus uit te voeren en te luisteren naar gebeurtenissen (zoals het indrukken van knoppen) totdat u het venster sluit.

venster.mainloop()

Zet alle code bij elkaar en uw app voor gewichtsconversie is klaar voor gebruik.

Voorbeelduitvoer van de toepassing voor gewichtsconversie

Bij het uitvoeren van het programma wordt een venster weergegeven met de koptekst, een invoervak ​​en drie knoppen samen met hun respectieve labels. Door de waarde in te voeren als 30 kilogram en achtereenvolgens op elk van de knoppen te drukken, toont het programma de omgerekende gewichten op het scherm.

30 kilogram wordt omgezet in 30.000 gram, 1.058,22 ons en 66,1385 pond.

Tkinter gebruiken om desktop-applicaties te bouwen

Tkinter is een van de gemakkelijkste en krachtigste modules om GUI-applicaties in Python te ontwikkelen. Het ondersteunt platformonafhankelijke ontwikkeling, met aanpasbare en kant-en-klare widgets om elke applicatie binnen enkele minuten te creëren.

Als u op zoek bent naar alternatieven voor Tkinter, kunt u de PyQt-module verkennen. PyQt is een Python-binding voor Qt. Het is een verzameling C++-bibliotheken en ontwikkeltools die abstracties bieden voor grafische gebruikersinterfaces op vele platformen. U kunt tools gebruiken voor netwerken, reguliere expressies, SQL-databases, XML en meer.