Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คุณจะตรวจสอบได้อย่างไรว่าวิดเจ็ตมีโฟกัสใน Tkinter หรือไม่?


ให้เราสมมติว่าเราต้องการตรวจสอบว่าวิดเจ็ตใดมีชุดโฟกัสหรือไม่ วิธีเดียวที่จะตรวจสอบโฟกัสของวิดเจ็ตคือการใช้วิธียูทิลิตี้ focus_get() . ส่งคืนอ็อบเจ็กต์ที่มีข้อมูลของวิดเจ็ตซึ่งขณะนี้โฟกัสอยู่ที่ ระหว่างการทำงานของโปรแกรม เราจะใช้ focus_get() วิธีค้นหาวิดเจ็ตที่ใช้งานอยู่ระหว่างการทำงานของโปรแกรม

ตัวอย่าง

ในตัวอย่างนี้ เราได้สร้างวิดเจ็ตรายการที่จะได้รับโฟกัสเมื่อเรากดปุ่ม focus_get() เมธอดจะส่งคืนข้อมูลของวิดเจ็ตปัจจุบันที่ทำงานอยู่

#Import the Tkinter library
from tkinter import *
#Create an instance of Tkinter frame
win= Tk()
#Define the geometry
win.geometry("750x250")
#Define Event handlers for different Operations
def event_show(event):
   label.config(text="Hello World")
   e.focus_set()
   print("focus is:" ,e.focus_get)
#Create a Label
label= Label(win, text="Press Enter",font=('Helvetica 15 underline'))
label.pack()
#Create an entry widget
e= Entry(win, width= 25)
e.pack(pady=20)
#Bind the function
win.bind('<Return>',lambda event:event_show(event))
win.mainloop()

ผลลัพธ์

การเรียกใช้โค้ดด้านบนจะแสดงหน้าต่างที่มีปุ่ม เมื่อเรากดปุ่ม มันจะพิมพ์ผลลัพธ์ที่มีข้อมูลของวิดเจ็ตซึ่งขณะนี้เน้นที่บานหน้าต่าง

คุณจะตรวจสอบได้อย่างไรว่าวิดเจ็ตมีโฟกัสใน Tkinter หรือไม่?

ตอนนี้เมื่อเรากด มันจะแสดงผลลัพธ์ในเชลล์เป็น

focus is : <bound method Misc.focus_get of <tkinter.Entry object .!entry >>