PyGTK - Kelas Tata Letak

Gtk.Layout adalah widget penampung yang mirip dengan gtk.Fixed. Widget ditempatkan di widget Tata Letak dengan menentukan koordinat absolut. Namun, Tata Letak berbeda dari widget tetap dalam hal-hal berikut -

  • Widget tata letak dapat memiliki lebar dan tinggi tak terbatas. Nilai maksimum lebar dan tinggi dibatasi oleh ukuran bilangan bulat tak bertanda.

  • Widget gtk.DrawingArea dapat dimasukkan dalam wadah tata letak. DrawingArea adalah kanvas tempat elemen 2D seperti garis, persegi panjang, dll. Dapat digambar.

  • Untuk meletakkan wadah Layout di jendela tingkat atas dengan dimensi yang lebih kecil, ini dapat dikaitkan dengan scrollbar atau dapat ditempatkan di ScrolledWindow.

Kelas gtk.Layout memiliki konstruktor berikut -

gtk.Layout(hadjustment = None, vadjustment = None)

Itu hadjustment dan vadjustment properti mewakili objek yang memiliki nilai batas yang dapat disesuaikan.

Tabel berikut mencantumkan metode tata letak yang sering digunakan -

letakkan (widget, x, y) Menempatkan widget anak pada koordinat yang ditentukan
set_size (w, h) Menyetel ukuran penampung Layout ke lebar dan tinggi yang ditentukan

Objek Layout memancarkan sinyal set_scroll_adjustment saat penyesuaian yang terkait dengannya diubah.

Contoh

Dalam contoh berikut, Label ditempatkan di tengah wadah Layout, yang pada gilirannya akan ditempatkan di jendela tingkat atas dengan ukuran lebih kecil. Oleh karena itu, pertama kali ditambahkan ke ScrolledWindow dan ScrolledWindow kemudian ditambahkan ke jendela utama.

Perhatikan kodenya -

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

Kode di atas akan menghasilkan output berikut -