Tkinter tutorial - Button

Tkinter Buttonwidget

Tkinter-knopwidget lijkt veel op Tkinter Label-widget. Het heeft bijna dezelfde opties als die op het label, behalve dat het een extra default optie heeft. We zullen hier meer informatie over default geven na een eenvoudig voorbeeld van een knop.

Je kan twee eenvoudigste knoppen genereren met behulp van onderstaande demo codes.

from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()

Het venster met twee knoppen naast elkaar verschijnt nadat u de codes hebt uitgevoerd.

Hoe schimmels verwijderen.
Hoe schimmels verwijderen.

Tkinter Tutorial_Basic Label

Tkinter knop default optie

De default optie in knop geeft aan dat de knop de standaardknop in de GUI is, bijvoorbeeld degene die automatisch wordt opgeroepen wanneer de gebruiker op Enter of Return drukt.

De callback command van de standaardknop wordt niet automatisch gemaakt. U moet handmatig maken.

Tkinter-knop callback command

De optie command roept de callback functie op wanneer de knop wordt ingedrukt.

De knop status moet actief zijn wanneer de opdrachtoptie is ingeschakeld, anders wordt er niet teruggebeld.

from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    

    
app = tk.Tk()
labelExample = tk.Button(app, text="0")

def change_label_number():
    counter = int(str(labelExample['text']))
    counter += 1
    labelExample.config(text=str(counter))
    
buttonExample = tk.Button(app, text="Increase", width=30,
                          command=change_label_number)

buttonExample.pack()
labelExample.pack()
app.mainloop()

Het maakt een knop en een label widget in het hoofdvenster. Het nummer in de labeltekst wordt met 1 verhoogd telkens wanneer op de knop wordt geklikt.

Tkinter Tutorial_Button Command Callback

def change_label_number():
    counter = int(str(labelExample['text']))
    counter += 1
    labelExample.config(text=str(counter))

De change_label_number functie wordt aangeroepen wanneer op de knop wordt geklikt. Het krijgt het aantal labels en stelt het label vervolgens met één in.

buttonExample = tk.Button(app, text="Increase", width=30,
                          command=change_label_number)

Het bouwt de binding tussen de knop en de callback-functie.

De functienaam in de knopopties staat zonder haakjes.

Tkinter-knop Command Callback-functie met argumenten

Je hebt een partial object van functools nodig als u argumenten wilt doorgeven aan de callback-functies. partial objecten zijn opvraagbare objecten met de positionele argumenten args en trefwoordargumenten keywords.

Het onderstaande codefragment laat zien hoe u deze partial functie kunt gebruiken in de knopopdracht.

def change_label_number(num):
    counter = int(str(labelExample['text']))
    counter += num
    labelExample.config(text=str(counter))
    
buttonExample = tk.Button(app, text="Increase", width=30,
                          command=partial(change_label_number, 2))