python tkinter滚动条和文本小部件问题

时间:2011-08-06 03:52:52

标签: python text scrollbar tkinter

我正在尝试获取两个文本框,每个文本框都有滚动条。然而,当我尝试这个时:

from Tkinter import *

root = Tk()

s_start = Scrollbar(root)
t_start = Text(root, width=50, height=10)

t_start.focus_set()

s_start.pack(side=RIGHT, fill=Y)
t_start.pack(side=LEFT, fill=Y)

s_start.config(command=t_start.yview)
t_start.config(yscrollcommand=s_start.set)

s_end = Scrollbar(root)
t_end = Text(root, width=50, height=10)

t_end.focus_set()

s_end.pack(side=RIGHT, fill=Y)
t_end.pack(side=LEFT, fill=Y)

s_end.config(command=t_end.yview)
t_end.config(yscrollcommand=s_end.set)

root.mainloop()

发生这种情况:

enter image description here

如果不清楚,那么它们是两个单独的文本框,右侧文本框功能性地绑定到内部滚动条,左侧文本框功能性地绑定到外部滚动条。

1 个答案:

答案 0 :(得分:3)

诀窍是使用Frames并将Scrollbars添加到Frames而不是Root。

from Tkinter import *

root = Tk()

left = Frame(root)
right = Frame(root)

t_start = Text(left, width=20)
t_start.pack(side=LEFT, fill=Y)
s_start = Scrollbar(left)
s_start.pack(side=RIGHT, fill=Y)
s_start.config(command=t_start.yview)
t_start.config(yscrollcommand=s_start.set)

t_end = Text(right, width=20)
t_end.pack(side=LEFT, fill=Y)
s_end = Scrollbar(right)
s_end.pack(side=RIGHT, fill=Y)
s_end.config(command=t_end.yview)
t_end.config(yscrollcommand=s_end.set)

left.pack(side=LEFT, fill=Y)
right.pack(side=RIGHT, fill=Y)

root.geometry("500x200")
root.mainloop()

Two TkInter Text with Scrollbars