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.
Pertamakali 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 masihada 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 sepertigambar berikut.
Pertama
$sudo apt-get install python-qt4
Selanjutnya, buat script berikut ini.
from PyQt4 import Qt
from PyQt4.QtGui import *
from PyQt4.QtCore import QDate, SIGNAL
class FormTeman(QMainWindow):
def __init__(
QMainWindow.__init__(
self.setWindowTitle('
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()
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
$sudo apt-get install qt4-doc-html
Sedangkan hasil eksekusinya adalah seperti
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 :