PyGTK - AspectFrame 类
gtk.AspectFrame 类是 Frame 类的子类。 即使调整了主窗口的大小,此框架中的子窗口小部件也始终保持其纵横比(宽度和高度)。
gtk.AspectFrame 小部件的比率属性决定了小部件的宽高比。 纵横比为 0.5 表示宽度是高度的二分之一; 纵横比为 2.0 表示宽度是高度的两倍。 "比率"属性的默认值为 1.0。
以下语法用于 gtk.AspectFrame 类的构造函数 −
gtk.AspectFrame (label = None, xalign = 0.5, yalign = 0.5, ratio = 1.0, obey_child = True)
xalign 属性决定子元素左侧水平可用空间的比例。 0.0 表示左侧没有可用 空间,1.0 表示左侧有所有可用 空间。
yalign 属性决定子元素上方垂直可用空间的比例。 0.0 表示上面没有可用 空间,1.0 表示上面有所有可用 空间。
如果 obey_child 属性为 False,框架的宽高比将保持不变。
obey_child 属性决定是否忽略比率。 默认值为真。
以下代码类似于用于 Frame 类的代码。 唯一的区别是 ButonBox 放置在 AspectFrame 小部件中。
frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5, ratio = 5.0, obey_child = False)
Note − obey_child 属性设置为 False,因为即使调整窗口大小也希望保持纵横比。
示例
观察下面的代码 −
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Aspect Frame Demo") self.set_default_size(250, 200) self.set_border_width(5) frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5, ratio = 5.0, obey_child = False) hb = gtk.HButtonBox() btn1 = gtk.RadioButton(None,"Degree") hb.add(btn1) btn2 = gtk.RadioButton(btn1,"P.G.") hb.add(btn2) btn3 = gtk.RadioButton(btn1,"Doctorate") hb.add(btn3) frm.add(hb) frm.set_label("Qualifications") self.add(frm) self.connect("destroy", gtk.main_quit) self.show_all() if __name__ == '__main__': PyApp() gtk.main()
以上代码将产生以下原始和调整大小的窗口 −
原始窗口
调整大小的窗口