PyGTK AspectFrame类

PyGTK AspectFrame类

gtk.AspectFrame类是Frame类的一个子类。这个框架中的子部件总是保持它的长宽比(宽度和高度),即使主窗口被调整大小。

gtk.AspectFrame widget的ratio属性决定了widget的宽高比。长宽比为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 widget中。

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

上述代码将产生以下原始和调整后的窗口 –

PyGTK - AspectFrame类

原始窗口

PyGTK - AspectFrame类

调整后 的窗口

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程