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