Syndicate content

PyGTK: Signal

Dalam tutorial sebelumnya kita telah bersama-sama belajar membuat aplikasi PyGTK pertama. Sekarang kita akan belajar topik baru lagi yaitu mengenai signal.

Sesuatu namanya, signal atau sinyal dapat diartikan sebagai pemberitahuan atas terjadinya sesuatu kejadian (atau event :). Andai masakan saya tiba-tiba mengeluarkan banyak asap, maka asap tersebut dapat menjadi sinyal yang akan mengaktifkan detektor asap dan suara yang dikeluarkan akan menjadi sinyal lagi untuk membangunkan orang (lho kok jadi curhat?). Dari contoh tersebut, kejadian yang dimaksud adalah masakan saya mengeluarkan asap sedangkan detektor asap menjadi penerima sinyal.

Dalam komponen PyGTK biasanya ada berbagai event yang dihasilkan dan kita bisa mengarahkan signal dari event tersebut ke sebuah fungsi/method yang akan menerima sinyal tersebut. Perhatikan contoh berikut.

def keluar(pemanggil):
    gtk.main_quit()

window.connect("destroy", keluar)

Dengan menggunakan method “connect”, sebuah sinyal dari event bernama “destroy” dari objek “window” (lihat tutorial sebelumnya) akan diarahkan ke sebuah fungsi bernama “keluar”. Event ini akan muncul saat pengguna mengklik tombol keluar pada window yang ada. Isi dari fungsi keluar tersebut adalah memerintahkan gtk agar keluar dari main loop.

Catatan: Dalam bahasa Java, fungsi connect ini mirip dengan addApalahListener()

Kita juga bisa menggunakan lebih dari satu fungsi/method untuk menerima satu sinyal yang sama. Sebagai contoh, coba tambahkan lagi potongan kode berikut pada kode pada tutorial sebelumnya.

def pamit(pemanggil):
    print "permisi saya pulang dulu.."

window.connect("destroy", pamit)

Hasil akhir penambahan dua potongan kode ini adalah sebagai berikut (simpan dalam berkas bernama, misalnya, 02.py)

#!/usr/bin/python

import gtk

window = gtk.Window()
window.set_title("Hello World!")
window.show()

def keluar(pemanggil):
    gtk.main_quit()

window.connect("destroy", keluar)

def pamit(pemanggil):
    print "permisi saya pulang dulu.."

window.connect("destroy", pamit)

gtk.main()

Setelah itu, jalankan dengan cara seperti biasa.

$ python 02.py

Saat script dijalankan, sebuah window akan muncul. Setelah tombol close pada window ditekan, maka script akan berhenti dengan sempurna (tidak “nyangkut” seperti sebelumnya) dan mengeluarkan tulisan “permisi saya pulang dulu..”

Referensi:


< sebelumnya | selanjutnya >