Pygtk 简明教程
PyGTK - AspectFrame Class
gtk.AspectFrame 类是框架类的子类。此框架中的子小工具始终保持其宽高比,即使主窗口更改了大小。
gtk.AspectFrame 小工具的 ratio 属性确定小工具的宽高比。0.5 的宽高比意味着宽度是高度的一半;2.0 的宽高比意味着宽度是高度的两倍。"ratio" 属性的默认值为 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 属性确定是否忽略此比。默认为 True。
以下代码类似于用于 Frame 类的代码,唯一区别在于 ButtonBox 被放置在 AspectFrame 小工具中。
frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5,
ratio = 5.0, obey_child = False)
Note − obey_child 属性被设置为 False,因为需要在调整窗口大小时保持宽高比。
Example
观察以下代码 -
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()
上述代码将生成以下的原始和调整大小的窗口 −
Original Window
Resized Window