📅  最后修改于: 2020-11-08 07:58:35             🧑  作者: Mango
gtk.AspectFrame类是Frame类的子类。即使调整了主窗口的大小,此框架中的子窗口小部件也始终保留其纵横比(宽度和高度)。
gtk.AspectFrame小部件的ratio属性确定小部件的宽高比。长宽比为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属性确定是否要忽略该比率。默认值为True。
以下代码类似于用于Frame类的代码。唯一的区别是ButonBox放置在AspectFrame小部件中。
frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5,
ratio = 5.0, obey_child = False)
注– 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()
上面的代码将产生以下原始和调整大小的窗口-
原始窗口
调整大小的窗口