esittely
Tkinter on avoimen lähdekoodin graafinen käyttöliittymä (GUI) -kirjasto Pythonille, ja se on välttämätön työkalu työpöytäsovellusten luomiseen. Yksi yleinen Tkinterin käyttötapa on sellaisten lomakkeiden luominen, jotka edellyttävät käyttäjän syötteitä Entry-widgeteissä, kuten tekstikentissä. Ratkaiseva osa näiden Entry-widgetien luomisessa ja työskentelyssä on kohdistuksen käsittely: määritetään, mikä sovelluksen osa vastaanottaa syötteitä käyttäjältä, kun näppäimistötapahtumia tapahtuu. Tämä artikkeli tarjoaa perusteellisen katsauksen Entry-widgetien kohdistuksen hallintaan Tkinterin avulla ja selittää koodin eri osia yksityiskohtaisesti. Lisäksi käsitellään aiheeseen liittyviä kirjastoja ja toimintoja, joilla on merkittävä rooli Tkinterin käytössä GUI-kehityksessä.
Focusin ymmärtäminen Tkinterissä ja syöttöwidgeteissä
Kun kehität sovelluksia Tkinterillä, on tärkeää ymmärtää fokuksen käsite. Focus viittaa GUI-elementtiin, joka tällä hetkellä vastaanottaa näppäimistösyötteen. Vain yhdellä widgetillä voi olla kohdistus kerrallaan. Yleensä kohdistettu widget osoitetaan visuaalisesti, esimerkiksi korostamalla tekstiä tai näyttämällä vilkkuva kursori tekstinsyöttökentässä.
- Tarkoituksena on varmistaa, että käyttäjä voi olla vuorovaikutuksessa sovelluksen asianmukaisten osien kanssa intuitiivisesti.
- Työpöytäsovelluksissa kohdistuksen hallinta on olennainen osa käyttökokemusta. Kun käyttäjät esimerkiksi selailevat lomaketta, heidän pitäisi pystyä liikkumaan syöttökenttien välillä sujuvasti ja ilman sekaannusta.
Kohdistuksen hallintaan Entry-widgeteissä Tkinter tarjoaa useita menetelmiä, kuten focus_set() ja focus_get().
Ratkaisu: Focusin hallinta Tkinter Entry -widgeteissä
Ensisijainen ratkaisu kohdistuksen hallintaan Entry-widgeteissä on käyttää Tkinterin toimittamia fokus_set()- ja focus_get()-funktioita. Tässä on esimerkki näiden funktioiden käyttämisestä:
import tkinter as tk def focus_next(event): event.widget.tk_focusNext().focus_set() root = tk.Tk() e1 = tk.Entry(root) e1.pack() e1.bind("<Tab>", focus_next) e2 = tk.Entry(root) e2.pack() e2.bind("<Tab>", focus_next) root.mainloop()
Yllä olevassa koodissa tuomme ensin tkinter-moduulin ja luomme yksinkertaisen funktion, focus_next(). Tämä funktio ottaa tapahtuman syötteenä ja käyttää "tk_focusNext()"- ja "focus_set()"-menetelmiä asettaakseen kohdistuksen seuraavaan Entry-widgetiin. Luomme sitten Tkinter-ikkunan (root) ja kaksi Entry-widgetiä, e1 ja e2. Sidomme jokaiseen Entry-widgetiin