使用此代码片段,向上和向下键(u“uf700”,u“uf701”)传递给跟踪:
import Tkinter as tk
import ttk
def tracesv(var):
print var
class foo()
def __init__(self, parent=None):
self.win = tk.Toplevel()
self.svFrame = ttk.Frame(self.win)
self.svFrame.grid()
self.sv = tk.StringVar()
self.sv.trace('w', lambda nm, idx, mode, var=self.sv: tracesv(var))
self.svEntry = tk.Entry(self.svFrame, textvariable=self.sv)
self.svEntry.grid()
..... etc.
如果我用ttk.Entry()替换tk.Entry(),则向上和向下键不会传递给跟踪。有没有办法让这个工作与ttk.Entry()?
答案 0 :(得分:0)
听起来你在Mac上发现了Tkinter中的一个错误,因为箭头键不会传递给变量跟踪。变量跟踪旨在在修改变量时调用。除非向上和向下箭头修改该值,否则它们不应导致跟踪触发。
由于这是一个错误,因此没有好办法在其他小部件(例如ttk.Entry小部件)上强制执行该错误。
如果您正在寻找在用户按下向上或向下键时调用函数的方法,那么正确的方法是为这些键添加小部件的绑定。