2013-03-01 61 views
0

问题框架Tkinter的滚动条与多个textframes

我怎么能有这会将整个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 

每个文本创建一个新的textframe实体以供稍后简化概述(计划使按钮显示/隐藏输入)。

滚动条是存在,但并不功能

image

+0

为了将来的参考,请注意您正在使用哪种版本的Python(2.x或3.x)这两者之间有根本的区别。 – xxmbabanexx 2013-03-01 12:31:18

+0

你想要滚动文本小部件,还是滚动包含多个文本小部件的整个框架,还是滚动条应以同步的方式滚动每个文本小部件? – 2013-03-01 13:57:08

+0

我的回答和@BryanOakley的错在哪里?我们没有回答这个问题吗?如果我们这样做,请确保在我们的名字旁边做绿色复选标记。 – xxmbabanexx 2013-03-01 17:52:09

回答

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

+0

请参阅我上面的注释 – user2116482 2013-03-01 13:22:01

0

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

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

我尝试了两种解决方案并未成功。 事情是(把我有限的技术诀窍考虑在内);这两种解决方案都是用于滚动单个的textwidgets。我有一个Toplevel框架(soeg),里面有多个textwidgets。 我正在使用python 2.7.3。 – user2116482 2013-03-01 13:09:32

+0

该解决方案的工作原理(如滚动条现在移动它的栏,但不是实际的窗口) – user2116482 2013-03-01 13:12:49

+0

@ user2116482实际的Frame *不会移动。*您可以移动框架内的小部件 - 而不是框架本身。 – xxmbabanexx 2013-03-01 14:09:22