小學(xué)英語小知識 什么是堆棧?什么是流程?--鞋子布局經(jīng)理
01
的06
The Stack
要有效使用任何GUI工具包,您必須了解其布局管理器(或幾何管理器)。在Qt中,您有HBoxes和VBoxes,在Tk中您有Packer和Shoes,您有stacks and flows。它聽起來很神秘但很簡單。健康知識館
堆棧就像名字所暗示的那樣。它們垂直堆疊東西。如果將三個按鈕堆疊在一起,它們將垂直堆疊,一個堆疊在一起。如果您在窗口中用完了房間,滾動條將出現(xiàn)在窗口的右側(cè),以便您查看窗口中的所有元素。
請注意,當(dāng)它's說堆棧的按鈕是"內(nèi)部"時,它只是意味著它們是在傳遞給堆棧方法的塊的內(nèi)部創(chuàng)建的。在這種情況下,三個按鈕是在塊內(nèi)部傳遞到堆棧方法時創(chuàng)建的,因此它們're"內(nèi)部"堆棧。
鞋子:寬度=>200,:高度=>140 do
堆棧do
按鈕"按鈕1"
按鈕"按鈕2"
按鈕"按鈕3"
結(jié)束
結(jié)束
02
of 06
流量
A流動水平包裝東西。如果在流程內(nèi)部創(chuàng)建了三個按鈕,則它們會出現(xiàn)在彼此旁邊。
鞋子:寬度=>400,:高度=>140 do
流量do
按鈕"按鈕1"
按鈕"按鈕2"
按鈕"按鈕3"
結(jié)束
結(jié)束
03
of 06
主窗口是流量
主窗口本身就是一個流程。前面的例子可以在沒有流程塊的情況下編寫,同樣會發(fā)生同樣的事情:三個按鈕將并排創(chuàng)建。
鞋子:寬度=>400,:高度=>140 do
按鈕"按鈕1"
按鈕"按鈕2"
按鈕"按鈕3"
結(jié)束
119 04 120
of 06
溢流
在那里'了解流量還有一件重要的事情。如果你水平跑出空間,鞋子永遠(yuǎn)不會創(chuàng)建一個水平滾動條。相反,鞋子會在應(yīng)用程序的"下一行"下一行創(chuàng)建元素。它'就像你在文字處理器中到達(dá)一行的末尾一樣。文字處理器不會創(chuàng)建滾動條并讓您繼續(xù)鍵入頁面,而是將文字放在下一行。
鞋子:widt=&&t;400,:height=&>140 Do140 Do140 do
按鈕&\35; 34;按鈕1&\#34;
按鈕&\#34;按鈕2&\#34;
按鈕........................................................34;
按鈕&\\\\\\\\\\>結(jié)束
05
of 06
尺寸小學(xué)英語小知識
到目前為止,我們還沒有't在創(chuàng)建堆棧和流程時給出任何尺寸;它們've只需要盡可能多的空間。然而,尺寸可以以與尺寸相同的方式給出鞋子方法調(diào)用。此示例創(chuàng)建一個不像窗口那么寬的'并向其中添加按鈕的流程。還給它一個邊框樣式,以便直觀地識別流的位置。
鞋子:widt=&&t;400,:height=&t;140 do
flow:widt=>250 do
Boder red
button&\35; 34;Butto1&\#34;
button"
button&\#34;Butt3&\#34;
Buttot&&&&&&&&&&t;140 Do140 Do140 Do140 Do140 Do140 Do140>flow:Wiwiwidt=&&>250;250 Do250 Do250 Do250 Do250
174>174>Butter紅色<174180>按鈕"按鈕6"
結(jié)束
結(jié)束
您可以通過紅色邊框看到流程沒有't全部擴(kuò)展通往窗口邊緣的路。當(dāng)?shù)谌齻€按鈕將被創(chuàng)建時,那里沒有足夠的空間,所以鞋子向下移動到下一行。
06
of 06
堆流,流堆
流和堆棧don't僅包含應(yīng)用程序的可視元素,它們還可以包含其他流和堆棧。通過組合流程和堆棧,您可以相對容易地創(chuàng)建復(fù)雜的視覺元素布局。
如果您是Web開發(fā)者,您可能會注意到這與CSS布局引擎非常相似。這是故意的。鞋子受到網(wǎng)絡(luò)的嚴(yán)重影響。事實(shí)上,鞋子的基本視覺元素之一就是"鏈接"你甚至可以將鞋子應(yīng)用程序安排到"頁面"
在此示例中,將創(chuàng)建包含3個堆棧的流。這將創(chuàng)建一個3列布局,每列中的元素垂直顯示(因?yàn)槊苛卸际且粋€堆棧)。堆棧的寬度不像前面的例子那樣是像素寬度,而是33%。這意味著每列將占應(yīng)用程序中可用水平空間的33%。
鞋子:widt=&>400,:height=>140 do
flow do
stack:widt=&>&&35; 39;33%'do
button"button 1&\#34;
button \35; 34;button 2&\35; 34;
Buttot&&&&&&t;140 do
流動do
堆棧:寬度=&>&&'33%33%33%&&\>堆棧:寬度=>'33%'do
para"這是段落"+
"文本,它將環(huán)繞&\#34;+[b r]&\#34;并填寫該列。"
end
stack:widt=&&t;&\#39;33%39;do
按鈕&\\\35;34;按鈕1 \\#34;
按鈕\35;34;++;\35;34;+[b r]+[b r]&35;#34;并填充該列。&\\35; 34;
結(jié)束
結(jié)束
結(jié)束