- 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()
以上代码将产生以下输出: