PyGTK - Lớp bố cục
Gtk.Layout là một widget vùng chứa tương tự như gtk.Fixed. Tiện ích con được đặt trong tiện ích Bố cục bằng cách chỉ định tọa độ tuyệt đối. Tuy nhiên, Bố cục khác với tiện ích con cố định theo những cách sau:
Tiện ích bố cục có thể có chiều rộng và chiều cao vô hạn. Giá trị lớn nhất của chiều rộng và chiều cao bị giới hạn bởi kích thước của số nguyên không dấu.
Một widget gtk.DrawingArea có thể được đặt trong một vùng chứa bố cục. DrawingArea là một khung vẽ trên đó các phần tử 2D như đường thẳng, hình chữ nhật, v.v. có thể được vẽ.
Để đặt vùng chứa Bố cục trong cửa sổ cấp trên cùng có kích thước nhỏ hơn, nó có thể được liên kết với các thanh cuộn hoặc có thể được đặt trong ScrolledWindow.
Lớp gtk.Layout có hàm tạo sau:
gtk.Layout(hadjustment = None, vadjustment = None)
Các hadjustment và vadjustment thuộc tính đại diện cho một đối tượng có giá trị giới hạn có thể điều chỉnh được.
Bảng sau liệt kê các phương pháp thường được sử dụng của bố cục:
đặt (tiện ích con, x, y) | Đặt tiện ích con tại các tọa độ đã chỉ định |
set_size (w, h) | Đặt kích thước của vùng chứa Bố cục thành chiều rộng và chiều cao được chỉ định |
Đối tượng Bố trí phát ra tín hiệu set_scroll_adjustment khi các điều chỉnh liên quan đến nó bị thay đổi.
Thí dụ
Trong ví dụ sau, một Nhãn có nhịp độ ở tâm của vùng chứa Bố cục, đến lượt nó sẽ được đặt trong cửa sổ cấp trên có kích thước nhỏ hơn. Do đó, lần đầu tiên nó được thêm vào ScrolledWindow và ScrolledWindow sau đó được thêm vào cửa sổ chính.
Quan sát mã -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("layout")
self.set_size_request(300,200)
self.set_position(gtk.WIN_POS_CENTER)
sc = gtk.ScrolledWindow()
lo = gtk.Layout()
lo.set_size(400,400)
button = gtk.Button("Press Me")
lo.put(button, 125,200)
sc.add(lo)
self.add(sc)
self.connect("destroy", gtk.main_quit)
self.show_all()
PyApp()
gtk.main()
Đoạn mã trên sẽ tạo ra kết quả sau: