Tkinter.Entry()传递向上/向下键来跟踪...有没有办法用ttk.Entry()做到这一点?

时间:2012-09-21 19:27:53

标签: python tkinter ttk

使用此代码片段,向上和向下键(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()?

1 个答案:

答案 0 :(得分:0)

听起来你在Mac上发现了Tkinter中的一个错误,因为箭头键会传递给变量跟踪。变量跟踪旨在在修改变量时调用。除非向上和向下箭头修改该值,否则它们不应导致跟踪触发。

由于这是一个错误,因此没有好办法在其他小部件(例如ttk.Entry小部件)上强制执行该错误。

如果您正在寻找在用户按下向上或向下键时调用函数的方法,那么正确的方法是为这些键添加小部件的绑定。