簡體   English   中英

python tkinter事件不適用於框架內的輸入

[英]python tkinter event not working for entry within a frame

我有一個框架內的條目。 我想通過該條目傳遞一個事件。

以下是有效的代碼,但不包含框架中的條目:

import tkinter as tk
myUi= tk.Tk()
myFrame = tk.Frame(myUi)
myFrame.pack()
def printMe(event):
    value = event.widget.get()
    print(value)
myEntry = tk.Entry(myUi,name='entry')
myEntry.bindtags(('.entry','Entry'))
myEntry.bind("<KeyRelease>", printMe)
myEntry.pack()
myUi.mainloop()

這是無效的代碼:

import tkinter as tk
myUi= tk.Tk()
myFrame = tk.Frame(myUi)
myFrame.pack()
def printMe(event):
    value = event.widget.get()
    print(value)
myEntry = tk.Entry(myFrame,name='entry')
myEntry.bindtags(('.entry','Entry'))
myEntry.bind("<KeyRelease>", printMe)
myEntry.pack()
myUi.mainloop()

當您將條目放置在框架中時,其綁定標簽將包含其自己的名稱以及其前祖的名稱(由句點分隔)。 在此特定情況下,條目的綁定標簽是.!frame.myentry 您可以通過在更改默認綁定標簽之前先打印出默認綁定標簽來查看此內容(例如: print(str(myEntry))

由於將條目的綁定標簽更改為('.entry', 'Entry') ,因此小部件本身(即:綁定標簽.!frame.entry )上的任何綁定都不會與小部件關聯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM