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.
Cari di sini
Rabu, 27 April 2011
Belajar pemrograman GUI python dengan Qt
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar