PyGTK - Lớp căn chỉnh

Widget này tỏ ra hữu ích trong việc kiểm soát căn chỉnh và kích thước của các widget con của nó. Nó có bốn thuộc tính được gọi là xalign, yalign, xscale và yscale. Thuộc tính tỷ lệ chỉ định bao nhiêu dung lượng trống sẽ được sử dụng bởi các tiện ích con. Các thuộc tính căn chỉnh được sử dụng để đặt tiện ích con trong khu vực có sẵn.

Tất cả bốn thuộc tính có giá trị float từ 0 đến 1,0. Nếu thuộc tính xscale và yscale được đặt thành 0, điều đó có nghĩa là tiện ích con không hấp thụ không gian trống và nếu được đặt thành 1, tiện ích con sẽ hấp thụ không gian trống tối đa theo chiều ngang hoặc chiều dọc.

Thuộc tính xalign và yalign nếu được đặt thành 0, có nghĩa là sẽ không có không gian trống bên trái hoặc bên trên widget. Nếu được đặt thành 1, sẽ có không gian trống tối đa ở bên trái hoặc phía trên tiện ích.

Lớp gtk.alignment có hàm tạo sau:

gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)

Ở đâu,

  • xalign - Là phần nhỏ của không gian trống nằm ngang bên trái của tiện ích con.

  • yalign - Là phần nhỏ của không gian trống theo chiều dọc phía trên tiện ích con.

  • xscale - Là phần không gian trống theo chiều ngang mà tiện ích con hấp thụ.

  • yscale - Là phần không gian trống theo chiều dọc mà tiện ích con hấp thụ.

Thí dụ

Đoạn mã sau minh họa việc sử dụng tiện ích gtk.alignment. Một Vbox trong cửa sổ cấp trên có một Vbox trên và Hbox dưới được đặt trong đó. Trong hộp dọc phía trên, một nhãn và một tiện ích Mục nhập được đặt sao cho về phía bên trái, 50% không gian được giữ trống và hơn 25% trong số này được sử dụng bằng cách gán các thuộc tính 0,5 xalign và 0,25 cho yalign.

Trong HBox thấp hơn, tất cả không gian trống có sẵn nằm ở phía bên trái. Điều này đạt được bằng cách gán 1 cho thuộc tính xalign. Do đó, hai nút trong hộp ngang xuất hiện được căn phải.

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Alignment demo")
      self.set_size_request(400,200)
      self.set_position(gtk.WIN_POS_CENTER)
		
      vbox = gtk.VBox(False, 5)
      vb = gtk.VBox()
      hbox = gtk.HBox(True, 3)
      valign = gtk.Alignment(0.5,0.25, 0, 0)
		
      lbl = gtk.Label("Name of student")
      vb.pack_start(lbl, True, True, 10)
      text = gtk.Entry()
		
      vb.pack_start(text, True, True, 10)
      valign.add(vb)
      vbox.pack_start(valign)
		
      ok = gtk.Button("OK")
      ok.set_size_request(70, 30)
		
      close = gtk.Button("Close")
      hbox.add(ok)
      hbox.add(close)
		
      halign = gtk.Alignment(1, 0, 0, 0)
      halign.add(hbox)
		
      vbox.pack_start(halign, False, False, 3)
		
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
PyApp()
gtk.main()

Đoạn mã trên tạo ra kết quả sau: