Cari di sini

Rabu, 27 April 2011

Belajar pemrograman GUI python dengan Qt

Untuk membuat aplikasi GUI di lingkungan GNU/Linux bisa dilakukan dengan banyak cara. Apalagi GNU/Linux, terutama Ubuntu yang sering kita gunakan menyediakan banyak sekali aplikasi pendukung, mulai dari kompilator, interpreter, hingga IDE canggih
yang dilengkapi fasilitas debug dan kolaborasi project. Salah satu dari sekian banyak itu adalah python, bahasa tingkat tinggi yang powerful tapi sederhana. Dilengkapi Qt yang cantik tentunya.

Pertama kali lakukan instalasi python-qt. Jalankan perintah berikut,

$sudo apt-get install python-qt4

Selanjutnya, buat script berikut ini.


import sys
from PyQt4 import Qt
from PyQt4.QtGui import *
from PyQt4.QtCore import QDate, SIGNAL

class FormTeman(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setWindowTitle('Teman')
self.resize(550,550)
self.labelNama=QLabel(self)
self.labelAlamat=QLabel(self)
self.labelTglLahir=QLabel(self)
self.labelJenis=QLabel(self)
self.labelTelp=QLabel(self)
self.editNama=QLineEdit(self)
self.editAlamat=QTextEdit(self)
self.editTglLahir=QDateEdit(self)
self.editJenis=QComboBox(self)
self.editTelp=QLineEdit(self)
self.buttonSimpan=QPushButton(self)
self.listTeman=QTableWidget(self)
self.labelNama.setText('Nama')
self.labelAlamat.setText('Alamat')
self.labelTglLahir.setText('Tgl lahir')
self.labelJenis.setText('Jenis kelamin')
self.labelTelp.setText('Telepon')
self.editTglLahir.setDisplayFormat('dd-MM-yyyy')
self.editTglLahir.setDate(QDate(QDate.currentDate()))
self.editJenis.addItems(['Pria','Wanita'])
self.buttonSimpan.setText('Simpan')
self.listTeman.setColumnCount(5)
self.listTeman.setHorizontalHeaderLabels(['Nama','Alamat','Tgl Lahir','Kelamin','Telepon'])
self.listTeman.setColumnWidth(0,150)
self.editNama.resize(200,30)
self.editAlamat.resize(200,100)
self.listTeman.resize(500,200)
self.labelNama.move(10,10)
self.labelAlamat.move(10,40)
self.labelTglLahir.move(10,140)
self.labelJenis.move(10,170)
self.labelTelp.move(10,200)
self.editNama.move(100,10)
self.editAlamat.move(100,40)
self.editTglLahir.move(100,140)
self.editJenis.move(100,170)
self.editTelp.move(100,200)
self.buttonSimpan.move(100,230)
self.listTeman.move(10,300)
self.connect(self.buttonSimpan,SIGNAL('clicked()'),self.simpan)

def simpan(self):
row=self.listTeman.rowCount()
pid=row+1
self.listTeman.setRowCount(pid)
self.listTeman.setItem(row,0,QTableWidgetItem(self.editNama.text()))
self.listTeman.setItem(row,1,QTableWidgetItem(self.editAlamat.toPlainText()))
self.listTeman.setItem(row,2,QTableWidgetItem(self.editTglLahir.text()))
self.listTeman.setItem(row,3,QTableWidgetItem(self.editJenis.currentText()))
self.listTeman.setItem(row,4,QTableWidgetItem(self.editTelp.text()))
self.editNama.clear()
self.editAlamat.clear()
self.editJenis.setCurrentIndex(0)
self.editTelp.clear()
self.editTglLahir.setDate(QDate(QDate.currentDate()))
self.editNama.setFocus()

app=Qt.QApplication(sys.argv)
ft=FormTeman()
ft.show()
app.exec_()

Meski panjang, script di atas tidaklah terlalu sulit dipahami. Yang penting dari script panjang tadi adalah event listener yang dijalankan oleh method connect. Parameter yang dibawanya menghubungkan button dengan fungsi simpan yang didefinisikan di bawahnya.

Jika masih ada yang sulit, mungkin itu terkait sinopsis pustaka Qt. Dan untuk mempelajarinya lebih dalam, Anda bisa install dokumentasinya. Silakan jalankan perintah berikut.
$sudo apt-get install qt4-doc-html

Sedangkan hasil eksekusinya adalah seperti gambar berikut.


Tidak ada komentar:

Posting Komentar