我正在嘗試使用Perl Tk創建一個類似於GUI的簡單記事本。我使用了滾動小工具創建了一個文本小部件,其中包含兩個滾動條 - 一個位於右側,另一個位於底部。不過,我想使它看起來像什麼是微軟的「記事本」程序看到限制滾動條長度
:其中兩個滾動滿足看起來像這樣的地方。這是我想要的:
正如你可以看到,有一個現在的「空方」,其中兩個滾動見面。記事本的另一個功能是可以使用這個「方塊」來調整窗口大小。我希望能夠實現同樣的目標。
我如何去這樣做呢?
謝謝!
我正在嘗試使用Perl Tk創建一個類似於GUI的簡單記事本。我使用了滾動小工具創建了一個文本小部件,其中包含兩個滾動條 - 一個位於右側,另一個位於底部。不過,我想使它看起來像什麼是微軟的「記事本」程序看到限制滾動條長度
:其中兩個滾動滿足看起來像這樣的地方。這是我想要的:
正如你可以看到,有一個現在的「空方」,其中兩個滾動見面。記事本的另一個功能是可以使用這個「方塊」來調整窗口大小。我希望能夠實現同樣的目標。
我如何去這樣做呢?
謝謝!
訣竅是將窗口小部件與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討論如何僞造它(再次,我從來沒有嘗試過這個代碼)。
'grid'確實是解決這個問題的方法,而滾動條問題是最初的激勵用例;在它被髮明之前,你必須用'框架'作爲分隔符在'pack'中做一些令人討厭的技巧,而且確實很難做到。 –
你知道,如果你在一段時間接受一個答案一次,它使人們更主動地回答您提出的其他問題。 –