- PyGTK 教程
- PyGTK - 首頁
- PyGTK - 簡介
- PyGTK - 環境配置
- PyGTK - Hello World
- PyGTK - 重要類
- PyGTK - Window 類
- PyGTK - Button 類
- PyGTK - Label 類
- PyGTK - Entry 類
- PyGTK - 訊號處理
- PyGTK - 事件處理
- PyGTK - 容器
- PyGTK - Box 類
- PyGTK - ButtonBox 類
- PyGTK - Alignment 類
- PyGTK - EventBox 類
- PyGTK - Layout 類
- PyGTK - ComboBox 類
- PyGTK - ToggleButton 類
- PyGTK - CheckButton 類
- PyGTK - RadioButton 類
- PyGTK - MenuBar、Menu 和 MenuItem
- PyGTK - Toolbar 類
- PyGTK - Adjustment 類
- PyGTK - Range 類
- PyGTK - Scale 類
- PyGTK - Scrollbar 類
- PyGTK - Dialog 類
- PyGTK - MessageDialog 類
- PyGTK - AboutDialog 類
- PyGTK - 字型選擇對話方塊
- PyGTK - 顏色選擇對話方塊
- PyGTK - 檔案選擇對話方塊
- PyGTK - Notebook 類
- PyGTK - Frame 類
- PyGTK - AspectFrame 類
- PyGTK - TreeView 類
- PyGTK - Paned 類
- PyGTK - Statusbar 類
- PyGTK - ProgressBar 類
- PyGTK - Viewport 類
- PyGTK - Scrolledwindow 類
- PyGTK - Arrow 類
- PyGTK - Image 類
- PyGTK - DrawingArea 類
- PyGTK - SpinButton 類
- PyGTK - Calendar 類
- PyGTK - Clipboard 類
- PyGTK - Ruler 類
- PyGTK - 超時機制
- PyGTK - 拖放操作
- PyGTK 有用資源
- PyGTK - 快速指南
- PyGTK - 有用資源
- PyGTK - 討論區
PyGTK - Box 類
gtk.Box 類是一個抽象類,定義了將小部件放置在矩形區域中的容器的功能。gtk.HBox 和 gtk.VBox 小部件派生於它。
在 gtk.Hbox 中,子小部件水平排列在同一行。另一方面,gtk.VBox 的子小部件垂直排列在同一列。
gtk.Box 類使用以下建構函式:
gtk.Box(homogenous = True, spacing = 0)
預設情況下,homogenous 屬性設定為 True。因此,所有子小部件都獲得相同的分配。
gtk.Box 使用打包機制,根據特定位置(相對於開頭或結尾)在其內放置子小部件。pack_start() 方法從開頭到結尾放置小部件。相反,pack_end() 方法從結尾到開頭放置小部件。或者,您可以使用 add() 方法,它類似於 pack_start()。
以下方法適用於 gtk.HBox 和 gtk.VBox:
gtk_box_pack_start ()
gtk_box_pack_end ()
gtk_box_pack_start ()
此方法將child新增到框中,相對於框的開頭進行打包:
pack_start(child, expand = True, fill = True, padding = 0)
引數如下:
child - 要新增到框中的小部件物件
expand - 如果要為子小部件在框中分配額外空間,則將其設定為 True。額外空間將平均分配給所有子小部件。
fill - 如果為 True,則將額外空間分配給子小部件;否則,此引數用作填充。
padding - 框中小部件之間的畫素間距。
gtk_box_pack_end ()
這將 child 新增到框中,相對於框的結尾進行打包。
pack_end (child, expand = True, fill = True, padding = 0)
引數如下:
child - 要新增的小部件物件
expand - 如果要為子小部件在框中分配額外空間,則將其設定為 True。額外空間將平均分配給所有子小部件。
fill - 如果為 True,則將額外空間分配給子小部件;否則,用作填充。
padding - 框中小部件之間的畫素間距。
set_spacing (spacing) 函式設定在框的子元素之間放置的畫素數。
add (widget) 方法繼承自 gtk.Container 類。它將 widget 新增到容器中。此方法可以替代 pack_start() 方法。
示例
在下面的示例中,頂級視窗包含一個垂直框(gtk.VBox 物件 box)。它依次包含 VBox 物件 vb 和 HBox 物件 hb。在上方的框中,標籤、條目小部件和按鈕垂直放置。在下方的框中,另一組標籤、條目和按鈕垂直放置。
觀察以下程式碼:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Box demo")
box = gtk.VBox()
vb = gtk.VBox()
lbl = gtk.Label("Enter name")
vb.pack_start(lbl, expand = True, fill = True, padding = 10)
text = gtk.Entry()
vb.pack_start(text, expand = True, fill = True, padding = 10)
btn = gtk.Button(stock = gtk.STOCK_OK)
vb.pack_start(btn, expand = True, fill = True, padding = 10)
hb = gtk.HBox()
lbl1 = gtk.Label("Enter marks")
hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
text1 = gtk.Entry()
hb.pack_start(text1, expand = True, fill = True, padding = 5)
btn1 = gtk.Button(stock = gtk.STOCK_SAVE)
hb.pack_start(btn1, expand = True, fill = True, padding = 5)
box.add(vb)
box.add(hb)
self.add(box)
self.show_all()
PyApp()
gtk.main()
以上程式碼將產生以下輸出: