PyGTK - Lớp AspectFrame

Lớp gtk.AspectFrame là một lớp con của lớp Frame. Tiện ích con trong khung này luôn giữ nguyên tỷ lệ co (chiều rộng và chiều cao) ngay cả khi cửa sổ chính được thay đổi kích thước.

Thuộc tính tỷ lệ của tiện ích con gtk.AspectFrame xác định tỷ lệ chiều rộng: chiều cao của tiện ích con. Tỷ lệ khung hình 0,5 có nghĩa là chiều rộng bằng một nửa chiều cao; tỷ lệ khung hình 2,0 có nghĩa là chiều rộng gấp đôi chiều cao. Giá trị mặc định cho thuộc tính "ratio" là 1,0.

Cú pháp sau được sử dụng cho hàm tạo của lớp gtk.AspectFrame:

gtk.AspectFrame (label = None, xalign = 0.5, yalign = 0.5, ratio = 1.0, obey_child = True)

Các xaligntài sản xác định phần của ngang miễn phí không gian để ở bên trái của đứa trẻ. 0.0 phương tiện không có miễn phí không gian bên trái, 1,0 có nghĩa là tất cả miễn phí không gian để ở bên trái.

Các yaligntài sản xác định phần của dọc miễn phí không gian trên đứa trẻ. 0,0 có nghĩa là không có dung lượng trống ở trên, 1.0 có nghĩa là tất cả dung lượng trống ở trên.

Tỷ lệ chiều rộng và chiều cao của khung được duy trì nếu obey_child tài sản là Sai.

Thuộc tính verify_child xác định xem tỷ lệ có bị bỏ qua hay không. Mặc định là đúng.

Đoạn mã sau đây tương tự như đoạn mã được sử dụng cho lớp Frame. Sự khác biệt duy nhất là ButonBox được đặt trong một widget AspectFrame.

frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5, 
   ratio = 5.0, obey_child = False)

Note - Thuộc tính verify_child được đặt thành False vì nó muốn giữ nguyên tỷ lệ khung hình ngay cả khi cửa sổ được thay đổi kích thước.

Thí dụ

Quan sát đoạn mã sau:

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

Đoạn mã trên sẽ tạo ra các cửa sổ gốc và đã thay đổi kích thước sau:

Original Window

Resized Window