Langsung ke konten utama

Berkenalan dengan PyQt4: Widget dan Signal-Slot

Widget

Nah, sekarang kita belajar untuk menambahkan komponen tambahan ke dalam jendela utama aplikasi kita. Komponen ini dalam Qt dikenal sebagai widgets. Sebagai contoh saya akan menambahkan satu buah widget ke dalam jendela utama.

Oh ya, sebelumnya saya belum bilang ya, aplikasi apa yang mau dibuat? Saya ingin membuat aplikasi sederhana untuk menampilkan halaman twitter saya. Alasannya sih: untuk belajar PyQt, juga karena saya malas install twitter client yang umumnya berbasis Adebe AIR. Canggih sih Adobe AIR cuma instalasinya gede. Selain itu karena di komputer saya memang sudah ada python dan PyQt4.

Saya akan menambahkan satu buah widget: QWebView yaitu widget untuk menampilkan halaman web, sebuah widget dasar untuk membuat browser web.

Kodenya:


Catatan: saya membuat fungsi tersediri untuk membuat menu, sehingga kode intinya nggak terlalu 'ramai'. Kode untuk menambahkan widgetnya sih sebetulnya cuma:



Nah, hasilnya seperti ini:

Hehehe, lumayan.... punya Twitter Browser sendiri...

Catatan:
Agar aplikasi di atas dapat berjalan baik, maka di komputer kita perlu terinstall pula OpenSSL

Signal - Slot

Nah, sekarang mau bicara sedikit mengenai signal-slot. Kalau diperhatikan dalam kode yang saya tulis ada:
self.connect(...)

Bagian kode itu itu fungsinya menghubungkan antara signal dengan slot.

Signal dan slot. Apa itu? Intinya, setiap widget/komponen memancarkan semacam sinyal apalagi pengguna melakukan tindakan atas komponen itu. Misalnya widget button/tombol tindakan yang pengguna lakukan adalah meng-klik tombol tersebut. Saat pengguna meng-klik tombol, maka widget button akan memancarkan sinyal "clicked()" ke sistem. Sinyal tersebut lalu akan 'ditangkap' oleh sistem dan dimasukkan ke dalam sebuah slot. Slot secara sederhana adalah tindakan sesuai sinyal yang bersangkutan. Analoginya seperti sistem anak kunci dan kunci deh, gan. Sinyal sebagai anak kuncinya, sedangkan slot sebagai kuncinya.

Contoh, misalnya kita membuat sebuah tombol 'Keluar' dalam jendela dialog dan kemudian menghubungkan tombol itu dengan fungsi keluar():



Sedangkan fungsi keluar() nya:

Komentar

Posting Komentar

Postingan populer dari blog ini

Dasar-Dasar Python (2)

Sebagian besar baris program yang kita tuliskan akan berupa sebuah expression . Contoh sederhana dari expression misalnya 2 + 3. Sebuah expression terdiri dari operand dan operator . Operand : 2 dan 3 Operator : + Operator adalah penanda bahwa program yang kita buat sedang melakukan sesuatu, dalam contoh di atas program kita sedang menjumlahkan angka 2 dan 3. Operasi Bilangan Seperti telah disinggung sebelumnya Python mengenal bilangan tipe Integer, Long Integer, Floating Point dan Complex Number. Dan seperti bahasa pemrograman lain pada umumnya, kita dapat memanipulasi bilangan dengan operator operasi bilangan. Operasi bilangan yang umum digunakan: penjumlahan, pengurangan, perkalian, pembagian. # operasi integer a = 3 + 4 # a bernilai 7 b = 4 - 3 # b bernilai 1 c = 3 * 4 # c bernilai 12 d = 4 / 3 # pembagian integer, d bernilai 1 e = 4 % 3 # sisa pembagian integer, e bernilai 1 print a, b, c, d, e # cetak hasil # operasi long integer f = 10000000000L + 25

Menghitung Pi

Wah, lama tidak menggunakan Python, otak terasa buntu. Soal yang perlu dipecahkan sederhana: hitunglah Pi menggunakan Wallis Formula : setelah 1 jam mencoba, maka saya menemukan potongan kode yang saya rasa betul: In [50]: pi = 2 * reduce(lambda x,y: x*y, [(4.0*i**2)/(4.0*i**2-1) for i in xrange(1,1000)]) In [51]: pi Out[51]: 3.1408069608284657 Wah, ternyata lebih ribet dari yang saya kira pada awalnya. Namun cool ... kita dapat menghitung Pi hanya dengan satu baris kode yang melibatkan fungsi built-in reduce , lambda , serta list comprehension . Yang baru saya pelajari dan gunakan adalah fungsi reduce . Potongan penjelasan mengenai fungsi reduce dari help Python: reduce ( function ,  iterable [ ,  initializer ] ) Apply   function   of two arguments cumulatively to the items of   iterable , from left to right, so as to reduce the iterable to a single value. For example, reduce(lambda   x,   y:   x+y,   [1,   2,   3,   4,   5])   calculates   ((((1+2)+3)+4)+5) . The l

Belajar: List Method

Sekedar mengulang mengenai 'list method ': method (atau ada yang menyebug fungsi) bawaan untuk objek 'list'. List Method: append : menambahkan item ke dalam list count : menghitung berapa banyak item ada dalam list extend : menambahkan item dari list lain ke dalam list index : memberitahukan index/posisi dari sebuah item dalam list pop : mengeluarkan sebuah item dari list; mengembalikan item tersebut sebagai 'return value'.  Jika tidak ditentukan index item yang akan dikeluarkan, fungsi akan mengeluarkan item terakhir dalam list remove : menghapus item tertentu dari list reverse : mengurutkan list secara terbalik (dari item besar ke kecil) sort : mengurutkan list (dari item kecil ke besar) Beberapa contoh: >>> my_list = ['chopsticks', 'dark soy sauce', 'wasabi', 'fugu', 'sake', 'ramen', 'shiitake mushrooms'] >>> my_list.sort() >>> my_list ['chopsticks', '