2013-03-01 86 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