Tutorial PyGTK #2: Belajar Membuat Tombol, Label, dan Event Click Handler
Pada tutorial sebelumnya, kita sudah belajar cara membuat jendela di PyGTK.
Berikutnya kita akan mencoba menambahkan beberapa elemen ke dalam jendela, seperti tombol dan label.
Baiklah…
Mari kita mulai!
Membuat Tombol di PyGTK
Tombol dapat kita buat dengan class Button()
.
Seperti ini:
button = gtk.Button("Sebuah Tombol")
Mari kita coba tambahkan ke dalam jendela.
Buatlah file baru bernama button1.py
,
kemudian isi dengan kode berikut.
import gtk
class App(gtk.Window):
def __init__(self):
super(App, self).__init__()
self.set_title("Latihan Button")
self.set_size_request(250, 150)
self.set_position(gtk.WIN_POS_CENTER)
# membuat button
button = gtk.Button("Sebuah Tombol")
# membuat container untuk button
container = gtk.Fixed()
# menambahkan button ke container
container.put(button, 20, 30)
# menambahkan container ke jendela
self.add(container)
self.connect("destroy", gtk.main_quit)
self.show_all()
App()
gtk.main()
Hasilnya:
Baik saya akan jelaskan sedikit.
Sebelum membuat tombol, ada baiknya kita menyediakan wadah berupa container
.
Objek ini adalah sebuah layout (Fixed).
container = gtk.Fixed()
Setelah itu kita masukan objek tombol ke dalam layout atau container.
container.put(button, 20, 30)
Terakhir, kita tambahkan layout ke dalam jendela agar dapat ditampilkan.
self.add(container)
Membuat Beberapa Tombol
Berikutnya, cobalah membuat beberapa tombol.
Buat file baru bernama button2.py
kemudian isi dengan kode berikut:
import gtk
class App(gtk.Window):
def __init__(self):
super(App, self).__init__()
self.set_title("Latihan Tombol")
self.set_size_request(250,150)
self.set_position(gtk.WIN_POS_CENTER)
btn1 = gtk.Button("Tombol 1")
btn1.set_sensitive(False) # non-aktifkan tombol
btn2 = gtk.Button("Tombol 2")
btn3 = gtk.Button(stock=gtk.STOCK_CLOSE)
btn4 = gtk.Button("Tombol 4")
btn4.set_size_request(80,40) # set ukuran tombol
container = gtk.Fixed() # membuat kontainer
container.put(btn1, 20, 30)
container.put(btn2, 100, 30)
container.put(btn3, 20, 80)
container.put(btn4, 100, 80)
self.connect("destroy", gtk.main_quit)
self.add(container)
self.show_all()
App()
gtk.main()
Hasilnya:
Pada contoh di atas, kita menggunakan beberapa method dari class Button()
seperti:
set_sensitive()
untuk menonaktifkan tombol;set_size_request()
untuk mengubah ukuran tombol;
…dan kita juga memberikan parameter seperti stock=gtk.STOCK_CLOSE
untuk
menambahkan ikon pada tombol.
Membuat Label
Label merupakan sebuah teks yang bisa kita tempel ke dalam jendela. Label biasanya digunakan untuk menampilkan informasi tertentu.
Cara membuat label di PyGTK:
label = gtk.Label("Teks Label")
Mari kita coba…
Buatlah file baru bernama label.py
kemudian isi dengan kode berikut:
import gtk
class App(gtk.Window):
def __init__(self):
super(App, self).__init__()
self.set_title("Latihan Label")
self.set_size_request(640,320)
self.set_position(gtk.WIN_POS_CENTER)
label = gtk.Label("Selamat datang di Petani Kode")
self.add(label)
self.connect("destroy", gtk.main_quit)
self.show_all()
App()
gtk.main()
Hasilnya:
Label akan ditampilkan ditengah-tengah jendela, karena kita tidak menggunakan container.
Event Handler pada Tombol
Kita sudah tahu cara membuat tombol dan lebel, lalu pertanyaannya:
Bagaimana cara agar tombol bisa melakukan sesuatu saat diklik?
Untuk melakukan ini, kita harus menghubungkan tombol dengan sebuah fungsi aksi atau handler saat diklik.
Caranya?
Kita bisa gunakan method connect()
seperti ini:
button.connect("clicked", on_button_click)
Parameter "clicked"
merupakan sinyal, lalu on_button_click
adalah nama
fungsi yang akan meng-handle saat sinyal "clicked"
terjadi.
Mari kita coba lihat contohnya…
Buatlah sebuah file baru bernama btn_click.py
,
kemudian isi dengan kode berikut:
import gtk
class App(gtk.Window):
def __init__(self):
super(App, self).__init__()
self.set_title("Latihan Button Click")
self.set_size_request(400, 200)
self.set_position(gtk.WIN_POS_CENTER)
# membuat button dan label
button = gtk.Button("Klik Saya!")
self.label = gtk.Label("...")
# membuat container untuk button
container = gtk.Fixed()
# menambahkan button ke container
container.put(button, 20, 30)
container.put(self.label, 20, 100)
# connect signal dan fungsi
self.connect("destroy", gtk.main_quit)
button.connect("clicked", self.on_button_click)
# menambahkan container ke jendela
self.add(container)
self.show_all()
def on_button_click(self, button):
print("Tombol diklik!")
self.label.set_text("Hello World")
App()
gtk.main()
Hasilnya:
Berhasil!
Kita sudah berhasil menghubungkan sinyal "clicked"
dengan fungsi on_button_click()
.
button.connect("clicked", self.on_button_click)
Pada fungsi on_button_click()
kita melakukan print teks ke console
dan mengubah teks label menjadi "Hello World"
.
def on_button_click(self, button):
print("Tombol diklik!")
self.label.set_text("Hello World")
Sehingga pada console atau terminal akan tampil seperti ini ketika tombol diklik.
Apa Selanjutnya?
Hore! kita sudah berhasil membuat tombol dan label serta mengetahui bagaimana cara membuat fungsi handler untuk tombol.
Selanjutnya, silakan pelajari tentang:
Selamat belajar.