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 darikompilator, 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. 

Jangan lupa baca yang ini juga



0 comments:

Posting Komentar

PEDOMAN KOMENTAR
Ayo berpartisipasi membangun budaya berkomentar yang baik. Pantang bagi kita memberikan komentar bermuatan menghina atau spam.
Kolom komentar tersedia untuk diskusi, berbagi ide dan pengetahuan. Hargai pembaca lain dengan berbahasa yang baik dalam berekspresi. Setialah pada topik. Jangan menyerang atau menebar kebencian terhadap suku, agama, ras, atau golongan tertentu.

Bangun sharing ilmu dengan berkomentar disini :