PyGTK - Lớp hộp

Lớp gtk.Box là một lớp trừu tượng xác định chức năng của một vùng chứa trong đó các widget được đặt trong một vùng hình chữ nhật. gtk.HBox và gtk.VBox widget có nguồn gốc từ nó.

Các widget con trong gtk.Hbox được sắp xếp theo chiều ngang trong cùng một hàng. Mặt khác, các widget con của gtk.VBox được sắp xếp theo chiều dọc trong cùng một cột.

Lớp gtk.Box sử dụng hàm tạo sau:

gtk.Box(homogenous = True, spacing = 0)

Thuộc tính đồng nhất được đặt thành True theo mặc định. Do đó, tất cả các widget con được phân bổ như nhau.

gtk.Box sử dụng cơ chế đóng gói để đặt các widget con vào đó với tham chiếu đến một vị trí cụ thể, hoặc tham chiếu đến bắt đầu hoặc kết thúc. Phương thức pack_start () đặt các widget từ đầu đến cuối. Ngược lại, phương thức pack_end () đặt các widget từ đầu đến đầu. Ngoài ra, bạn có thể sử dụng phương thức add () tương tự như pack_start ().

Các phương thức sau có sẵn cho gtk.HBox cũng như gtk.VBox -

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

Phương pháp này thêm child vào hộp, được đóng gói với tham chiếu đến đầu hộp -

pack_start(child, expand = True, fill = True, padding = 0)

Sau đây là các thông số:

  • child - Đây là đối tượng widget được thêm vào hộp

  • expand- Giá trị này được đặt thành Đúng nếu trẻ được cho thêm không gian trong hộp. Không gian bổ sung được chia cho tất cả trẻ emwidgets.

  • fill- Nếu Đúng, không gian bổ sung sẽ được cấp cho con. Nếu không, tham số này được sử dụng làm phần đệm.

  • padding - Đây là khoảng cách tính bằng pixel giữa các widget trong hộp.

gtk_box_pack_end ()

Điều này thêm con vào hộp, được đóng gói với tham chiếu đến cuối hộp.

pack_end (child, expand = True, fill = True, padding = 0)

Sau đây là các thông số:

  • child - Đây là đối tượng widget sẽ được thêm vào

  • expand- Giá trị này được đặt thành Đúng nếu trẻ được cho thêm không gian trong hộp. Không gian bổ sung này được chia cho tất cả các vật dụng con.

  • fill - Nếu Đúng, không gian bổ sung sẽ được phân bổ cho con, nếu không thì được sử dụng làm phần đệm.

  • padding - Đây là khoảng cách tính bằng pixel giữa các widget trong hộp.

set_spacing (spacing) là hàm đặt số lượng pixel cần đặt giữa các phần tử con của hộp.

Phương pháp add (widget)được kế thừa từ lớp gtk.Container. Nó thêm widget vào vùng chứa. Phương thức này có thể được sử dụng thay cho phương thức pack_start ().

Thí dụ

Trong ví dụ dưới đây, cửa sổ cấp trên chứa một hộp dọc (hộp đối tượng gtk.VBox). Nó lần lượt có một đối tượng VBox vb và HBox đối tượng hb. Trong hộp phía trên, một nhãn, một tiện ích con và một nút được đặt theo chiều dọc. Trong hộp phía dưới, một bộ nhãn, mục nhập và nút khác được đặt theo chiều dọc.

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

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
         self.set_title("Box demo")
		
      box = gtk.VBox()
      vb = gtk.VBox()
      lbl = gtk.Label("Enter name")
		
      vb.pack_start(lbl, expand = True, fill = True, padding = 10)
      text = gtk.Entry()
		
      vb.pack_start(text, expand = True, fill = True, padding = 10)
      btn = gtk.Button(stock = gtk.STOCK_OK)
		
      vb.pack_start(btn, expand = True, fill = True, padding = 10)
      hb = gtk.HBox()
		
      lbl1 = gtk.Label("Enter marks")
      hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
      text1 = gtk.Entry()
		
      hb.pack_start(text1, expand = True, fill = True, padding = 5)
      btn1 = gtk.Button(stock = gtk.STOCK_SAVE)
		
      hb.pack_start(btn1, expand = True, fill = True, padding = 5)
      box.add(vb)
      box.add(hb)
      self.add(box)
      self.show_all()
PyApp()
gtk.main()

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