2014-01-24 185 views
5

我正在嘗試使用Perl Tk創建一個類似於GUI的簡單記事本。我使用了滾動小工具創建了一個文本小部件,其中包含兩個滾動條 - 一個位於右側,另一個位於底部。不過,我想使它看起來像什麼是微軟的「記事本」程序看到限制滾動條長度

enter image description here

:其中兩個滾動滿足看起來像這樣的地方。這是我想要的:

enter image description here

正如你可以看到,有一個現在的「空方」,其中兩個滾動見面。記事本的另一個功能是可以使用這個「方塊」來調整窗口大小。我希望能夠實現同樣的目標。

我如何去這樣做呢?

謝謝!

+1

你知道,如果你在一段時間接受一個答案一次,它使人們更主動地回答您提出的其他問題。 –

回答

5

訣竅是將窗口小部件與grid幾何管理器放在一起,它基本上創建了一個(不規則大小的)4x4網格,其中文本窗口小部件位於「North-West」,垂直滾動條位於「North-East」 「西南」的水平滾動條和「東南」的空白廣場。在man page上有一個相關示例。

我想我可以引用man page的例子作爲合理使用(注意它的版權©1995-1997 Roger E. Critchlow Jr.版權所有©1996 Sun Microsystems,Inc.)。

# Make the widgets 
toplevel .t 
text .t.txt -wrap none -xscroll {.t.h set} -yscroll {.t.v set} 
scrollbar .t.v -orient vertical -command {.t.txt yview} 
scrollbar .t.h -orient horizontal -command {.t.txt xview} 

# Lay them out 
grid .t.txt .t.v -sticky nsew 
grid .t.h  -sticky nsew 

# Tell the text widget to take all the extra room 
grid rowconfigure .t .t.txt -weight 1 
grid columnconfigure .t .t.txt -weight 1 

但是,您將自己翻譯爲Perl-Tk。在TkDocs上有一些關於網格的Perl-Tk相關討論(儘管不是特別關於滾動條)here可能會讓你開始。 「學習Perl/Tk」示例章節Geometry Management也討論了grid

哦!你還想在第四個方格中調整大小。在Tcl/T(t)k中,它被稱爲ttk::sizegrip,它被記錄爲here。我從來沒有用過它(因爲還有其他方法來調整窗口的大小),不知道它是否在Perl-Tk中。如果不是,那麼有一個wiki page討論如何僞造它(再次,我從來沒有嘗試過這個代碼)。

+0

'grid'確實是解決這個問題的方法,而滾動條問題是最初的激勵用例;在它被髮明之前,你必須用'框架'作爲分隔符在'pack'中做一些令人討厭的技巧,而且確實很難做到。 –