PyGTK - คลาส AspectFrame

คลาส gtk.AspectFrame คือคลาสย่อยของคลาส Frame วิดเจ็ตลูกในเฟรมนี้ยังคงรักษาอัตราส่วน (ของความกว้างและความสูง) ไว้เสมอแม้ว่าจะปรับขนาดหน้าต่างหลักแล้วก็ตาม

คุณสมบัติอัตราส่วนของวิดเจ็ต gtk.AspectFrame กำหนดความกว้างวิดเจ็ต: อัตราส่วนความสูง อัตราส่วน 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 คุณสมบัติเป็นเท็จ

คุณสมบัติ 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 เนื่องจากต้องการคงอัตราส่วนภาพไว้แม้ว่าจะปรับขนาดหน้าต่างแล้วก็ตาม

ตัวอย่าง

สังเกตรหัสต่อไปนี้ -

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