- PyGTK 教程
 - PyGTK - 主页
 - PyGTK - 简介
 - PyGTK - 环境
 - PyGTK - 你好世界
 - PyGTK - 重要类
 - PyGTK - 窗口类
 - PyGTK - 按钮类
 - PyGTK - 标签类
 - PyGTK - 入门级
 - PyGTK - 信号处理
 - PyGTK - 事件处理
 - PyGTK - 容器
 - PyGTK - 盒子类
 - PyGTK - ButtonBox 类
 - PyGTK - 对齐类
 - PyGTK - EventBox 类
 - PyGTK - 布局类
 - PyGTK - 组合框类
 - PyGTK - ToggleButton 类
 - PyGTK - CheckButton 类
 - PyGTK - 单选按钮类
 - PyGTK - 菜单栏、菜单和菜单项
 - PyGTK - 工具栏类
 - PyGTK - 调整类
 - PyGTK - 范围类
 - PyGTK - 规模类
 - PyGTK - 滚动条类
 - PyGTK - 对话框类
 - PyGTK - 消息对话框类
 - PyGTK - AboutDialog 类
 - PyGTK - 字体选择对话框
 - PyGTK - 颜色选择对话框
 - PyGTK - 文件选择器对话框
 - PyGTK - 笔记本类
 - PyGTK - 框架类
 - PyGTK - AspectFrame 类
 - PyGTK - TreeView 类
 - PyGTK - 窗格类
 - PyGTK - 状态栏类
 - PyGTK - ProgressBar 类
 - PyGTK - 视口类
 - PyGTK - 滚动窗口类
 - PyGTK - 箭头类
 - PyGTK - 图像类
 - PyGTK - DrawingArea 类
 - PyGTK - SpinButton 类
 - PyGTK - 日历类
 - PyGTK - 剪贴板类
 - PyGTK - 标尺类
 - PyGTK - 超时
 - PyGTK - 拖放
 
- PyGTK 有用资源
 - PyGTK - 快速指南
 - PyGTK - 有用的资源
 - PyGTK - 讨论
 
PyGTK - 盒子类
gtk.Box 类是一个抽象类,定义容器的功能,其中小部件放置在矩形区域中。gtk.HBox 和 gtk.VBox 小部件是从它派生的。
gtk.Hbox 中的子部件水平排列在同一行中。另一方面,gtk.VBox 的子控件在同一列中垂直排列。
gtk.Box 类使用以下构造函数 -
gtk.Box(homogenous = True, spacing = 0)
默认情况下,同类属性设置为 True。结果,所有子部件都被给予相同的分配。
gtk.Box 使用打包机制根据特定位置(参考开始或结束)将子窗口部件放置在其中。pack_start() 方法从头到尾放置小部件。相反,pack_end() 方法将小部件从末尾放到开始。或者,您可以使用类似于 pack_start() 的 add() 方法。
以下方法可用于 gtk.HBox 以及 gtk.VBox -
gtk_box_pack_start()
gtk_box_pack_end()
gtk_box_pack_start()
此方法将子项添加到盒子中,并参考盒子的开头进行包装 -
pack_start(child, expand = True, fill = True, padding = 0)
以下是参数 -
child - 这是要添加到框中的小部件对象
Expand - 如果要在框中给孩子额外的空间,则将其设置为 True。额外的空间被分配给所有子部件。
fill - 如果为 True,则额外的空间将分配给子级。否则,该参数用作填充。
padding - 这是框中小部件之间的空间(以像素为单位)。
gtk_box_pack_end()
这会将孩子添加到盒子中,并参考盒子的末端进行包装。
pack_end (child, expand = True, fill = True, padding = 0)
以下是参数 -
child - 这是要添加的小部件对象
Expand - 如果要在框中给孩子额外的空间,则将其设置为 True。这个额外的空间被分配给所有子部件。
fill - 如果为 True,则额外的空间将分配给子项,否则用作填充。
padding - 这是框中小部件之间的空间(以像素为单位)。
set_spacing(间距)是设置框子项之间放置的像素数的函数。
add(widget)方法继承自gtk.Container类。它将小部件添加到容器中。可以使用此方法代替 pack_start() 方法。
例子
在下面给出的示例中,顶层窗口包含一个垂直框(gtk.VBox 对象框)。它又具有 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()
上面的代码将产生以下输出 -
