PyGTK - AspectFrame 類



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 屬性確定子部件左側水平空閒空間的比例。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()

以上程式碼將生成以下原始和調整大小的視窗:

Aspect Frame Demo

原始視窗

Aspect Frame Demo

調整大小後的視窗

廣告

© . All rights reserved.