当前位置: 首页 > 文档资料 > PyGTK 中文教程 >

AspectFrame 类(AspectFrame Class)

优质
小牛编辑
132浏览
2023-12-01

gtk.AspectFrame类是Frame类的子类。 即使主窗口调整大小,此框架中的子窗口小部件也始终保持其宽高比(宽度和高度)。

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属性确定子项左侧的水平free空间的分数。 0.0表示左侧没有free空间,1.0表示左侧的所有free空间。

yalign属性确定子项上方的垂直free空间的分数。 0.0表示上面没有free空间,1.0表示上面的所有free空间。

如果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)

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()

上面的代码将生成以下原始和调整大小的窗口 -

Aspect Frame Demo

Original Window

Aspect Frame Demo

Resized Window