PyGTK - คลาสเค้าโครง
gtk.Layout เป็นวิดเจ็ตคอนเทนเนอร์ที่คล้ายกับ gtk.Fixed วิดเจ็ตถูกวางไว้ในวิดเจ็ตเค้าโครงโดยระบุพิกัดสัมบูรณ์ อย่างไรก็ตามเค้าโครงแตกต่างจากวิดเจ็ตคงที่ด้วยวิธีต่อไปนี้ -
วิดเจ็ตเค้าโครงสามารถมีความกว้างและความสูงได้ไม่ จำกัด ค่าสูงสุดของความกว้างและความสูงถูก จำกัด โดยขนาดของจำนวนเต็มที่ไม่ได้ลงนาม
วิดเจ็ต gtk.DrawingArea สามารถอยู่ในคอนเทนเนอร์โครงร่าง DrawingArea เป็นผืนผ้าใบที่สามารถวาดองค์ประกอบ 2 มิติเช่นเส้นสี่เหลี่ยม ฯลฯ ได้
ในการวางคอนเทนเนอร์ Layout ในหน้าต่างระดับบนที่มีขนาดน้อยกว่านั้นสามารถเชื่อมโยงกับแถบเลื่อนหรือสามารถวางไว้ใน ScrolledWindow
คลาส gtk.Layout มีตัวสร้างดังต่อไปนี้ -
gtk.Layout(hadjustment = None, vadjustment = None)
hadjustment และ vadjustment คุณสมบัติเป็นตัวแทนของวัตถุที่มีค่าขอบเขตที่ปรับได้
ตารางต่อไปนี้แสดงวิธีการจัดวางที่ใช้บ่อย -
ใส่ (วิดเจ็ต, x, y) | วางวิดเจ็ตลูกไว้ที่พิกัดที่ระบุ |
set_size (w, h) | ตั้งค่าขนาดของคอนเทนเนอร์โครงร่างเป็นความกว้างและความสูงที่ระบุ |
อ็อบเจ็กต์ Layout จะปล่อยสัญญาณ set_scroll_adjustment เมื่อการปรับเปลี่ยนที่เกี่ยวข้องมีการเปลี่ยนแปลง
ตัวอย่าง
ในตัวอย่างต่อไปนี้ป้ายกำกับจะถูกวางไว้ที่กึ่งกลางของคอนเทนเนอร์เค้าโครงซึ่งจะต้องวางไว้ในหน้าต่างขนาดใหญ่ที่มีขนาดเล็กกว่า ดังนั้นจึงถูกเพิ่มลงใน ScrolledWindow ก่อนจากนั้นจึงเพิ่ม ScrolledWindow ลงในหน้าต่างหลัก
สังเกตรหัส -
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()
โค้ดด้านบนจะสร้างผลลัพธ์ต่อไปนี้ -