Išspręsta: tkinter sutelkti dėmesį į įėjimą

Įvadas

„Tkinter“ yra atvirojo kodo grafinės vartotojo sąsajos (GUI) biblioteka, skirta Python, ir tai yra būtinas įrankis kuriant darbalaukio programas. Vienas iš dažniausiai naudojamų „Tkinter“ būdų yra formų, kurioms reikia vartotojo įvesties įvesties valdikliuose, pvz., teksto laukuose, kūrimas. Svarbiausias šių įvesties valdiklių kūrimo ir darbo su jais aspektas yra dėmesio valdymas: nustatant, kuri programos dalis gaus vartotojo įvestį, kai įvyks klaviatūros įvykiai. Šiame straipsnyje išsamiai apžvelgsime, kaip valdyti įvesties valdiklius naudojant Tkinter, ir išsamiai paaiškinsime įvairius kodo komponentus. Be to, bus aptariamos susijusios bibliotekos ir funkcijos, kurios vaidina svarbų vaidmenį naudojant „Tkinter“ kuriant GUI.

„Tkinter“ ir „Entry Widgets“ fokusavimo supratimas

Kuriant programas naudojant Tkinter, labai svarbu suprasti fokusavimo sąvoką. Fokusas reiškia GUI elementą, kuris šiuo metu gauna klaviatūros įvestį. Vienu metu fokusuoti gali tik vienas valdiklis. Paprastai sufokusuotas valdiklis nurodomas vizualiai, pavyzdžiui, paryškinant tekstą arba rodant mirksintį žymeklį teksto įvesties lauke.

  • Pagrindinė fokusavimo funkcija yra užtikrinti, kad vartotojas galėtų intuityviai sąveikauti su atitinkamomis programos dalimis.
  • Staliniams kompiuteriams skirtoms programoms fokusavimo valdymas yra esminis vartotojo patirties aspektas. Pavyzdžiui, kai naudotojai naršo formą, jie turėtų sklandžiai ir be painiavos pereiti tarp įvesties laukų.

Norėdami valdyti įvesties valdiklius, „Tkinter“ pateikia kelis metodus, tokius kaip focus_set() ir focus_get().

Sprendimas: Focus valdymas Tkinter Entry Widgets

Pagrindinis sprendimas Entry valdikliuose valdyti fokusavimą yra naudoti Tkinter teikiamas funkcijas focus_set() ir focus_get(). Štai pavyzdys, kaip taikyti šias funkcijas:

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()

Aukščiau pateiktame kode pirmiausia importuojame tkinter modulį ir sukuriame paprastą funkciją focus_next(). Ši funkcija priima įvykį kaip įvestį ir naudoja metodus „tk_focusNext()“ ir „focus_set()“, kad sufokusuotų kitą įrašo valdiklį. Tada sukuriame „Tkinter“ langą (root) ir du „Entry“ valdiklius, e1 ir e2. Prie kiekvieno įrašo valdiklio susiejame raktas į funkciją focus_next(). Kai Paspaudus klavišą e1 arba e2 sufokusuotas, židinys bus perkeltas į kitą įrašo valdiklį.

Susijusios naujienos:

Palikite komentarą