PyGTK - Kelas Alignment
Widget ini terbukti berguna dalam mengontrol penyelarasan dan ukuran widget turunannya. Ini memiliki empat properti yang disebut xalign, yalign, xscale dan yscale. Properti scale menentukan berapa banyak ruang kosong yang akan digunakan oleh widget turunan. Properti align digunakan untuk menempatkan widget anak dalam area yang tersedia.
Keempat properti mengambil nilai float antara 0 dan 1.0. Jika properti xscale dan yscale disetel ke 0, itu berarti widget tidak menyerap ruang kosong dan jika disetel ke 1, widget menyerap ruang kosong maksimum masing-masing secara horizontal atau vertikal.
Properti xalign dan yalign jika disetel ke 0, berarti tidak akan ada ruang kosong di widget kiri atau di atas. Jika disetel ke 1, akan ada ruang kosong maksimum di kiri atau di atas widget.
Kelas gtk.alignment memiliki konstruktor berikut -
gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)
Dimana,
xalign - Merupakan pecahan dari ruang kosong horizontal di sebelah kiri widget anak.
yalign - Adalah pecahan ruang bebas vertikal di atas widget anak.
xscale - Is adalah bagian dari ruang kosong horizontal yang diserap widget turunan.
yscale - Is adalah bagian dari ruang kosong vertikal yang diserap widget turunan.
Contoh
Kode berikut menunjukkan penggunaan widget gtk.alignment. Sebuah Vbox di jendela tingkat atas memiliki Vbox atas dan Hbox bawah ditempatkan di dalamnya. Di kotak vertikal atas, label dan widget Entri ditempatkan sedemikian rupa sehingga ke kiri, 50% ruang tetap kosong dan lebih dari 25% ditempati dengan menetapkan 0,5 xalign dan 0,25 ke properti yalign.
Di HBox bawah, semua ruang kosong yang tersedia ada di sisi kiri. Ini dicapai dengan menetapkan 1 ke properti xalign. Karenanya, dua tombol di kotak horizontal tampak sejajar kanan.
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()
Kode di atas menghasilkan keluaran sebagai berikut -