บริษัท
Tkinter เป็นไลบรารีส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) แบบโอเพ่นซอร์สสำหรับ Python และเป็นเครื่องมือสำคัญสำหรับการสร้างแอปพลิเคชันเดสก์ท็อป การใช้งานทั่วไปอย่างหนึ่งของ Tkinter คือการสร้างแบบฟอร์มที่ผู้ใช้ต้องป้อนข้อมูลในวิดเจ็ตรายการ เช่น ช่องข้อความ สิ่งสำคัญในการสร้างและทำงานกับวิดเจ็ตรายการเหล่านี้คือการจัดการโฟกัส: การกำหนดว่าส่วนใดของแอปพลิเคชันจะได้รับอินพุตจากผู้ใช้เมื่อเหตุการณ์คีย์บอร์ดเกิดขึ้น บทความนี้จะให้ข้อมูลเชิงลึกเกี่ยวกับการจัดการโฟกัสในวิดเจ็ตรายการด้วย Tkinter และจะอธิบายส่วนประกอบต่างๆ ของโค้ดโดยละเอียด นอกจากนี้ จะมีการหารือเกี่ยวกับไลบรารีและฟังก์ชันที่เกี่ยวข้องซึ่งมีบทบาทสำคัญในการใช้ Tkinter สำหรับการพัฒนา GUI
ทำความเข้าใจ Focus ใน Tkinter และ Entry Widgets
เมื่อพัฒนาแอปพลิเคชันโดยใช้ Tkinter จำเป็นต้องเข้าใจแนวคิดเรื่องการมุ่งเน้น โฟกัสหมายถึงองค์ประกอบ GUI ที่ได้รับการป้อนข้อมูลจากแป้นพิมพ์ในปัจจุบัน. วิดเจ็ตเดียวเท่านั้นที่สามารถโฟกัสได้ในแต่ละครั้ง โดยทั่วไปแล้ว วิดเจ็ตที่โฟกัสจะถูกระบุด้วยภาพ เช่น โดยการเน้นข้อความหรือการแสดงเคอร์เซอร์ที่กะพริบในช่องป้อนข้อความ
- หน้าที่หลักของการมุ่งเน้นคือเพื่อให้แน่ใจว่าผู้ใช้สามารถโต้ตอบกับส่วนที่เหมาะสมของแอปพลิเคชันได้อย่างสังหรณ์ใจ
- สำหรับแอปพลิเคชันบนเดสก์ท็อป การจัดการโฟกัสเป็นส่วนสำคัญของประสบการณ์ผู้ใช้ เมื่อผู้ใช้ไปยังส่วนต่างๆ ของแบบฟอร์ม พวกเขาควรจะสามารถย้ายไปมาระหว่างช่องป้อนข้อมูลต่างๆ ได้อย่างราบรื่นและไม่สับสน
ในการจัดการโฟกัสในวิดเจ็ตรายการ Tkinter มีหลายวิธี เช่น focus_set() และ focus_get()
โซลูชัน: การจัดการโฟกัสในวิดเจ็ตรายการ Tkinter
โซลูชันหลักในการจัดการโฟกัสในวิดเจ็ตรายการคือการใช้ฟังก์ชัน focus_set() และ focus_get() ที่ Tkinter จัดเตรียมไว้ให้ นี่คือตัวอย่างวิธีใช้ฟังก์ชันเหล่านี้:
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()
ในโค้ดข้างต้น ก่อนอื่นเราจะนำเข้าโมดูล tkinter และสร้างฟังก์ชันแบบง่าย focus_next() ฟังก์ชันนี้รับเหตุการณ์เป็นอินพุตและใช้เมธอด "tk_focusNext()" และ "focus_set()" เพื่อกำหนดโฟกัสไปที่วิดเจ็ตรายการถัดไป จากนั้นเราสร้างหน้าต่าง Tkinter (รูท) และวิดเจ็ตรายการสองรายการ e1 และ e2 เราผูกเข้ากับวิดเจ็ตรายการแต่ละรายการ