2011-08-06 77 views
1

我想獲得兩個文本框,每個都有滾動條。當我嘗試這個但是:蟒蛇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

如果這是不明確,這是兩個獨立的文本框,用正確的文本框功能結合到內側渦旋欄,左側文本框在功能上綁定到外部滾動條。

回答

3

訣竅是使用框架並將滾動條添加到框架而不是根。

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

+0

完美。現在我該如何給框架提供邊框和高度? – JShoe

+0

我固定了包裝倉位。 – odie5533

+0

好的謝謝,那麼即使在非活動狀態下,是否可以在框中添加邊框? – JShoe