【发布时间】:2015-03-29 20:36:43
【问题描述】:
我在 Python 3.4.1 (Windows 7) 上使用 tkinter,我发现 ttk 的 Entry.xview_moveto 函数无法正常工作。下面是一些简单的代码:
from tkinter import *
from tkinter import ttk
a = Tk()
text = StringVar(a, value='qwertyuiopasdfghjklzxcvbnm1234567890')
b = ttk.Entry(a, textvariable=text)
b.grid()
b.xview_moveto(1)
xview_moveto 函数应该将文本一直滚动到左侧,但事实并非如此。但是,我注意到如果我使用
b.after(500, b.xview_moveto, 1)
它工作得很好。为什么我必须延迟函数调用才能使其正常工作?我做错了吗?
更新:除了 fhdrsdg 的解决方案,我发现Entry.after_idle 方法适用于我的程序。它似乎不适用于上述简单示例,但如果其他人有与我相同的问题,这可能是另一种看起来更简洁的解决方案。
【问题讨论】:
标签: python python-3.x tkinter ttk