带有多个文本框架的Tkinter Scrollbar框架

时间:2013-03-01 12:07:15

标签: python python-2.7 tkinter scrollbar

问题

如何使用滚动条移动整个Tkinter框架? 注意:我使用的是Python 2.7.3。

代码和说明

我有这个代码来定义滚动条

        scrollbar = Scrollbar(soeg)
        scrollbar.pack(side=RIGHT, fill="y")

此代码用于定义textframes

        h = 0
        s = 0
        for i in dom_nodup:

            abc = dom_nodup[h]
            text = Text(soeg, bg="brown", fg="white", height="10", width="60")          
            text.insert(INSERT, "%s \n" % abc[0])
            text.insert(END, "%s \n\n\n" % abc[1])
            text.pack()
            h += 1  
            s += 1

为每个文本实体创建一个新的文本框架,以便以后更容易概述(计划使用按钮显示/隐藏输入)。

滚动条存在但功能不正确

image

2 个答案:

答案 0 :(得分:0)

我建议您使用ScrolledText小部件。它自动为每个文本小部件添加滚动条,并且具有与Text相同的参数。以下是如何操作的简短示例。

from Tkinter import * #Import the Tkinter module
from ScrolledText import ScrolledText #import the scrolled text module
message = "I \n am \n scroll \n able. \n\n\n\n\n\n Yes I am!"
class Application(Frame): #Create a frame for the widgets

    def __init__(self, master):  #initialize the grid and widgets
        Frame.__init__(self,master)
        self.grid()
        self.widgets()
    def widgets(self):
        self.mytext = ScrolledText(self, width = 10) #Creates the widget
        self.mytext.grid() #Places it


root = Tk()
root.title("My Text Example")
#make my screen dimensions work

root.geometry("500x1000")
app = Application(root)

root.mainloop()

有关详细信息,请参阅Tkinterbookthis question

答案 1 :(得分:0)

要使滚动条起作用,您必须做两件事:您必须告诉它滚动哪个可滚动窗口小部件,并且您必须告诉可滚动窗口小部件哪个滚动条用当前位置更新。

scrollbar.configure(command=text.yview)
text.configure(yscrollcommand=scrollbar.set)