当选择包含它们的Scrollbar
标签时,与Text
小部件相关联的tkinter ttk.Notebook
并不总是正确显示。
以下是两个不同的程序来演示奇怪的行为:
运行程序。注意第一个选项卡。按下按钮,行将写入第二个选项卡中的文本小部件。转到第二个选项卡。请注意滚动条和滚动按钮,可以看到滚动条。
第二次运行程序,但这次,在按下按钮之前,选择第二个选项卡,什么也不做,然后再次选择第一个选项卡。然后按按钮,然后选择第二个选项卡。滚动条中的“滚动”按钮不可见。您必须将鼠标放在文本小部件中并滚动鼠标按钮才能看到它。
我该如何解决这个问题?
这是我的代码:
from Tkinter import *
import ttk
class Log:
def __init__(self,nb,name):
# Make a frame and put it on a tab
self.frame= Frame(nb);
nb.add(self.frame, text=name)
# Put a scroll text on the frame
self.scrollBar=Scrollbar(self.frame)
self.text = Text(self.frame,
yscrollcommand=self.scrollBar.set,
width =40,
height=10)
self.scrollBar.config(command=self.text.yview)
self.text.pack(side=LEFT)
self.scrollBar.pack(side=RIGHT,fill=Y)
def fillLog(self):
for i in range(100):
self.text.insert('end','hellow world\n')
root = Tk()
nb = ttk.Notebook(root)
nb.pack()
log1 = Log(nb,'log1')
log2 = Log(nb,'log2')
ttk.Button(root, text='PUT TEXT IN 2nd tab',command=log2.fillLog).pack()
mainloop()
我在Windows 7(三台计算机)上使用Python 2.7。