Zoeken…


Syntaxis

  • entry = tk.Entry ( ouder , ** kwargs )
  • entry.get ()
  • entry.insert (index, "waarde")
  • entry.delete (start_index, end_index)
  • entry.bind (evenement, terugbellen)

parameters

Parameter Beschrijving
ouder tkinter-widgets bestaan in een hieararchie. Behalve het root-venster hebben alle widgets een ouder. Sommige online tutorials noemen dit "master". Wanneer de widget met pack , place of grid aan het scherm wordt toegevoegd, verschijnt deze in deze bovenliggende widget
breedte De breedte geeft de gewenste breedte van de widget aan op basis van een gemiddelde tekenbreedte. Voor lettertypen met variabele breedte is dit gebaseerd op de breedte van het nul-teken ( 0 ). De standaardwaarde is 20. Merk op dat de werkelijke breedte groter of kleiner kan zijn, afhankelijk van hoe deze aan het scherm wordt toegevoegd.

Opmerkingen

Deze voorbeelden gaan ervan uit dat tkinter is geïmporteerd met import tkinter as tk (python 3) of import Tkinter as tk (python 2).

Een invoerwidget maken en een standaardwaarde instellen

entry = tk.Entry(parent, width=10)
entry.insert(0, "Hello, World!")

De waarde van een Entry-widget verkrijgen

De waarde van een invoerwidget kan worden verkregen met de methode get van de widget:

name_entry = tk.Entry(parent)
...
name = name_entry.get()

Desgewenst kunt u een exemplaar van een StringVar en de waarde ophalen uit StringVar plaats van uit de widget:

name_var = tk.StringVar()
name_entry = tk.Entry(parent, textvariable=name_var)
...
name = name_var.get()

Validatie toevoegen aan een Entry-widget

Om het aantal tekens te beperken dat in een invoerwidget kan worden getypt, kunnen bijvoorbeeld alleen cijfers een validatieopdracht aan de invoer worden toegevoegd. Een validatieopdracht is een functie die True retourneert als de wijziging wordt geaccepteerd, anders False . Deze functie wordt elke keer aangeroepen wanneer de inhoud van het item wordt gewijzigd. Aan deze functie kunnen verschillende argumenten worden doorgegeven, zoals het type wijziging (invoegen, verwijderen), de ingevoegde tekst, ...

def only_numbers(char):
    return char.isdigit()

validation = parent.register(only_numbers)
entry = Entry(parent, validate="key", validatecommand=(validation, '%S'))

De validate bepaalt het type gebeurtenis dat de validatie activeert, hier is dit elke toetsaanslag in het item. De '%S' in de optie validatecommand betekent dat het ingevoegde of verwijderde teken als argument wordt doorgegeven aan de functie only_numbers . De volledige lijst met mogelijkheden vindt u hier .

Int van Entry Widget krijgen

Als u de methode .get () gebruikt, wordt alles wat zich in de invoerwidget bevindt, omgezet in een tekenreeks. Ongeacht het type invoer (dit kan een getal of zin zijn), is de resulterende uitkomst een tekenreeks. Als de gebruiker 4 typt, is de uitvoer "4" zoals in een string. Om een int van een Entry Widget te krijgen, roept u eerst de .get () methode aan.

What_User_Wrote = Entry.get()

Nu zetten we die string om in een int als volgt:

Convert_To_Int = int(What_User_Wrote)

Evenzo, als u tijd wilt besparen, kunt u eenvoudig doen:

Convert_To_Int = int(Entry.get())

Je kunt de bovenstaande methode gebruiken als je str niet naar int wilt converteren.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow