Tutorial PyGTK #1: Belajar Pemrograman GUI dengan Python dan PyGTK di Linux
GUI adalah singkatan dari Graphical User Interface.
Aplikasi GUI memang mudah digunakan. Karena terdapat tampilan visual grafis yang bisa diklik.
Salah satu modul atau library yang sering digunakan untuk membuat aplikasi GUI adalah GTK+.
Pada kesempatan ini, kita akan menggunakan modul tersebut dengan mencoba membuat sebuah jendela atau window.
Mari kita mulai…
Apa itu GTK+ dan PyGTK?
Sebelum itu, kamu harus pahami dulu apa perbedaan dari GTK+ dan PyGTK.
GTK+ (GIMP Toolkit) merupakan library yang digunakan untuk membangun antarmuka grafis.
Mengapa disebut GIMP Toolkit?
Karena proyek GTK+ merupakan bagian dari proyek GIMP atau dengan kata lain, proyek GTK+ sama-sama digarap saat membuat proyek GIMP.
GTK+ sendiri merupakan library yang digunakan dengan bahasa C, sedangkan untuk python kita menggunakan PyGTK.
PyGTK adalah modul python yang berisi GTK+ atau dengan kata lain:
PyGTK adalah wrapper (pembungkus) GTK+ sehingga kita bisa menggunakan library ini di dalam Python.
Informasi lebih lengkap mengenai PyGTK, dapat dibaca pada website resminya www.pygtk.org.
📢 Update 28 Januari 2019:
PyGTK kini sudah berubah menjadi PyGObject. PyGObject lebih modern dibandingkan PyGTK karena sudah mendukung GTK 3. Sedangkan PyGTK hanya GTK 2 saja.
Persiapan Pemrograman PyGTK
Adapun peralatan yang harus dipersiapkan untuk memulai pemrograman PyGTK adalah sebagai berikut
1. Teks Editor
Teks editor akan digunakan untuk menulis kode.
Gunakan teks editor yang kamu sukai.
Beberapa teks editor rekomendasi: Atom, Ms. Visual Studio Code, Komodo Edit, Geany, dsb.
2. Python
Sebagian besar distro Linux sudah membawa python pada distribusinya, jadi tidak perlu diinstal.
Silakan cek versi yang terinstal di terminal dengan perintah:
$ python --version
Python 2.7.6
Perlu diketahui:
PyGTK hanya mendukung untuk Python 2. Jika ingin menggunakan Python 3, silakan gunakan PyGObject.
3. PIP
PIP merupakan sebuah program untuk manajemen paket atau modul di dalam Python.
Kita membutuhkan PIP untuk menginstal modul PyGTK.
Cara instal PIP, ketik perintah ini di terminal.
sudo apt install python-pip # untuk python 2
sudo apt install python3-pip # untuk python 3
4. Modul PyGTK
Modul PyGTK secara default tidak terinstal di dalam komputer kita, maka dari itu.. kita membutuhkan PIP untuk menginstalnya.
Namun, sebelum itu.. kita instal dulu setuptools
.
sudo apt install python-setuptools #untuk python 2
sudo apt install python3-setuptools #untuk python 3
Setuptools adalah tools yang akan digunakan untuk mengintegrasikan paket yang diinstal dengan pip
ke dalam sistem.
Setelah itu, barulah kita instal modul PyGTK dengan perintah berikut:
sudo pip install PyGTK
Install PyGTK untuk Ubuntu 20.04
Karena PyGTK sudah berubah menjadi PyGObject, maka instalasi di Ubuntu 20.04 atau distro terbaru lainnya akan error seperti ini.
Solusinya:
Install PyGTK secara manual melalui file .deb
. Silakan ikuti perintah berikut:
# download file deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-5.1ubuntu2_amd64.deb -O pygtk.deb
# install file deb
sudo apt install ./pygtk.deb
Setelah itu, coba tes dengan import gtk
melalui shell python.
Hasilnya:
Membuat Window dengan PyGTK
Setelah semua peralatan siap, mari kita coba membuat sebuah jendela.
Jendela merupakan bagian utama dari aplikasi GUI.
Buatlah file baru bernama jendela.py
, kemudian isi dengan kode berikut:
#impor pustaka GTK
import gtk
# membuat objek jendela
window = gtk.Window()
# konfigurasi jendela
window.set_size_request(600,200)
window.set_position(gtk.WIN_POS_CENTER)
window.set_title("Pemrograman PyGTK - Petani Kode")
window.connect("destroy", gtk.main_quit)
# tampilkan jendela
window.show()
gtk.main()
Setelah itu, simpan dengan nama jendela.py
dan eksekusi dengan
perintah:
python jendela.py
Maka hasilnya:
Jika berhasil muncul seperti pada gambar, berarti program PyGTK pertama kita berhasil.
Selamat… 🎉
Baiklah, sekarang saatnya saya jelaskan arti kode di atas.
Pertama-tama kita mengimpor modul gtk
:
import gtk
Setelah itu membuat objek window
dari class Window()
pada modul gtk
:
window = gtk.Window()
Object window
berisi beberapa method yang bisa kita gunakan
untuk memodifikasi tampilan jendela seperti:
set_size_request(600,200)
untuk menentukan ukuran jendela.set_position(gtk.WIN_POS_CENTER)
untuk menentukan posisi muncul jendela.gtk.WIN_POS_CENTER
artinya posisi munculnya di tengah-tengah layar.set_title()
untuk memberikan judul jendela.connect("destroy", gtk.main_quit)
untuk menghubungkan sinyal"destroy"
dengan fungsimain_quit
. Artinya, ketika tombol close diklik… aplikasi akan langsung keluar.show()
untuk menampilkan jendela.
Pada bagian akhir program di atas, kita memanggil method:
gtk.main()
Method gtk.main()
adalah main loop (perulangan utama)
yang menjaga jendela tetap terbuka.
Paham?
Kalau begitu…
Mari kita lanjutkan dengan membuat jendela, tapi dengan Classs
Membuat Jendela dengan Class
Pada contoh di atas kita membuat jendela dengan membuat
langsung objek dari class gtk.Window()
.
Sebenarnya ada cara lain, yaitu
dengan membuat turunan dari class Window()
Perhatikan kode berikut:
import gtk
class App(gtk.Window):
def __init__(self):
super(App, self).__init__()
self.connect("destroy", gtk.main_quit)
self.set_size_request(250, 150)
self.set_position(gtk.WIN_POS_CENTER)
self.show()
# Tampilkan Jendela
App()
gtk.main()
Hasilnya:
Hasilnya akan sama.
Cara ini mungkin akan sangat berguna saat kita bekerja aplikasi skala besar. Karena kita bisa menerapkan konsep-konsep OOP di sini.
Mengubah Ikon Aplikasi
Selanjutnya kita coba jelajahi, method apa saja yang dimiliki oleh
class Window()
Salah satunya adalah set_icon_from_file()
yang fungsinya untuk
mengubah ikon.
Baiklah, silakan buat file baru dengan nama ikon.py
.
Kemudian isi dengan kode berikut.
import gtk
class App(gtk.Window):
def __init__(self):
super(App, self).__init__()
self.connect("destroy", gtk.main_quit)
self.set_size_request(250, 150)
self.set_position(gtk.WIN_POS_CENTER)
self.set_title("Jendela dengan Ikon")
self.set_icon_from_file("icon.png")
self.show()
App()
gtk.main()
Hasilnya:
Apa Selanjutnya?
Kita sudah tahu cara membuat jendela dengan PyGTK, selanjutnya cobalah menambahkan tombol dan label di dalamnya.
Oh iya, source code tutorial tersedia di Github: