文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动

2024-10-03 17:29:06 发布

您现在位置:Python中文网/ 问答频道 /正文

Text小部件相关联的tkinter的Scrollbar在选中包含它们的ttk.Notebook选项卡时并不总是正确显示。在

这里有两个不同的程序来演示这种奇怪的行为:

  1. 运行程序。注意第一个选项卡。按下按钮,行将写入第二个选项卡中的文本小部件。转到第二个选项卡。注意滚动条和滚动按钮w/i滚动条可见。

  2. 在第二次运行之前,选择第二个程序,然后选择第二次运行。然后按下按钮,然后选择第二个选项卡。滚动条中的滚动按钮不可见。您必须将鼠标放在文本小部件中并滚动鼠标按钮以查看其显示。

我该怎么解决这个问题?在

我的代码是:

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()

我在Windows7上使用Python2.7(三台计算机)。在

enter image description here


Tags: textself程序log部件rootlog2按钮