Widget Dasar
Materi
● Radio Button
● Check Box
● Spin Box
● Scroll Bar & Slider
● List Widget
Radio Button
Radio Button adalah widget yang dapat menerima pilihan true atau false. Dalam
sekumpulan Radio Button hanya ada satu yang kondisinya terpilih/true.
Contoh program yang akan dibuat adalah kalkulator sederhana untuk menambah,
mengurangi, mengali, dan membagi dua angka input dari pengguna. Hasil perhitungan akan
ditampilkan pada textlabel. Tampilan program dapat dilihat pada gambar 1.
1
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2. Lanjutkan dengan membuat aplikasi utama seperti yang dapat dilihat pada program
1. Beri program utama nama: Prak2aKalkulatorMain.py
import sys
from Prak2aKalkulator import *
class MyForm(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.calculate)
def calculate(self):
result = 0
if len(self.ui.lineEdit.text())!=0:
a=int(self.ui.lineEdit.text())
else:
a=0
if len(self.ui.lineEdit_2.text())!=0:
b=int(self.ui.lineEdit_2.text())
else:
b=0
if self.ui.radioButton.isChecked()==True:
result=a+b
if self.ui.radioButton_2.isChecked()==True:
result=a-b
if self.ui.radioButton_3.isChecked()==True:
result=a*b
if self.ui.radioButton_4.isChecked()==True:
result=a/b
self.ui.label.setText("Hasil: " + str(result))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
Program 1. Kalkulator sederhana menggunakan radio button
2
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
Program 1 membuat custom slot untuk menghitung operasi matematika sesuai dengan
pilihan radio button pengguna.
Check Box
Check Box adalah widget yang memiliki fungsi mirip dengan Radio Button, yaitu
untuk melakukan pemilihan dari sekian opsi yang ada. Bedanya, jika Radio Button hanya
dapat terpilih satu dari sekian radio button, Check Box memungkinkan pengguna untuk
memilih lebih dari satu widget Check Box.
Contoh program yang akan dibuat adalah penghitung harga makanan sederhana.
Hasil perhitungan akan ditampilkan pada line Edit yang diset disable. Tampilan program
dapat dilihat pada gambar 2.
3
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2. Lanjutkan dengan membuat aplikasi utama seperti yang dapat dilihat pada program
2. Beri program utama nama: Prak2bCheckBoxMain.py
import sys
from Prak2bCheckBox import *
class MyForm(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.calculate)
def calculate(self):
res=0
if self.ui.checkBox.isChecked()==True:
res=res+10000
if self.ui.checkBox_2.isChecked()==True:
res=res+12000
if self.ui.checkBox_3.isChecked()==True:
res=res+12000
if self.ui.checkBox_4.isChecked()==True:
res=res+13000
self.ui.lineEdit.setText(str(res))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
Program 2. Penghitung total harga makanan sederhana menggunakan check box
Program 2 membuat custom slot untuk menghitung total harga makanan sesuai
dengan pilihan check box pengguna. Jika tidak ingin menggunakan tombol untuk
menghitung total harga, bisa juga dibuat 4 koneksi dari sinyal clicked dari tiap check box
untuk memanggil custom slot calculate. Dalam kondisi ini, tombol sudah tidak diperlukan
lagi.
Spin Box
Spin box sering kali digunakan sebagai widget yang berfungsi menerima input angka.
Pengguna bisa mengubah-ubah angka yang tertera dengan mengetik atau mengklik tombol
panah atas dan panah bawah disamping kanan tulisan.
4
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
Contoh program yang akan dibuat adalah penjumlah 2 angka yang diinputkan
menggunakan spin box (untuk input bilangan bulat) dan double spin box (untuk input
bilangan pecahan). Tampilan program dapat dilihat pada gambar 3.
2. Lanjutkan dengan membuat aplikasi utama seperti yang dapat dilihat pada program
3. Beri program utama nama: Prak2cSpinBoxMain.py
import sys
from Prak2cSpinBox import *
class MyForm(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.spinBox.editingFinished.connect(self.tampil1)
self.ui.doubleSpinBox.editingFinished.connect(self.tampil2)
self.ui.pushButton.clicked.connect(self.calculate)
def tampil1(self):
self.ui.lineEdit.setText(str(self.ui.spinBox.value()))
def tampil2(self):
self.ui.lineEdit_2.setText(str(self.ui.doubleSpinBox.value()))
def calculate(self):
jumlah= self.ui.spinBox.value() + self.ui.doubleSpinBox.value()
self.ui.label_3.setText('Sum is: ' + str( jumlah))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
5
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
myapp.show()
sys.exit(app.exec_())
Program 3. Penjumlah 2 angka sederhana menggunakan spin box dan double spin box
6
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2. Lanjutkan dengan membuat aplikasi utama seperti yang dapat dilihat pada program
4. Beri program utama nama: Prak2dSlider.py.
import sys
from Prak2dSlider import *
class MyForm(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.horizontalScrollBar.valueChanged.connect(self.scrollhorz)
self.ui.verticalScrollBar.valueChanged.connect(self.scrollvert)
self.ui.horizontalSlider.valueChanged.connect(self.sliderhorz)
self.ui.verticalSlider.valueChanged.connect(self.slidervert)
def scrollhorz(self,value):
self.ui.label.setText(str(value))
self.ui.horizontalSlider.setValue(value)
def scrollvert(self,value):
self.ui.label.setText(str(value))
self.ui.verticalSlider.setValue(value)
def sliderhorz(self,value):
self.ui.label.setText(str(value))
self.ui.horizontalScrollBar.setValue(value)
def slidervert(self,value):
self.ui.label.setText(str(value))
self.ui.verticalScrollBar.setValue(value)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
Program 4. Penggunaan slider dan scroll bar
7
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
List Widget
List widget adalah widget yang digunakan untuk menampung dan menampilkan
informasi berbentuk list string. Di Qt Designer, List widget terdapat pada kelompok Item
Widget di Widget Box (sebelah kiri layar).
Contoh program yang akan dibuat akan menunjukkan list widget untuk menyimpan
text input yang diberikan pengguna lewat line edit. Tampilan program dapat dilihat pada
gambar 5.
2. Lanjutkan dengan membuat aplikasi utama seperti yang dapat dilihat pada program
5. Beri program utama nama: Prak2eListWidget.py.
import sys
from Prak2eListWidget import *
class MyForm(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.tambahkanlist)
def tambahkanlist(self):
self.ui.listWidget.addItem(self.ui.lineEdit.text())
self.ui.lineEdit.setText('')
self.ui.lineEdit.setFocus()
8
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
Program 5. Penggunaan list widget
2. Lanjutkan dengan membuat aplikasi utama seperti yang dapat dilihat pada program
6. Beri program utama nama: Prak2fOperasiListWidget.py.
import sys
from Prak2fOperasiListWidget import *
class MyForm(QtWidgets.QDialog):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.tambahkanlist)
self.ui.pushButton_2.clicked.connect(self.editlist)
self.ui.pushButton_3.clicked.connect(self.deletelist)
9
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
self.ui.pushButton_4.clicked.connect(self.deletealllist)
def tambahkanlist(self):
self.ui.listWidget.addItem(self.ui.lineEdit.text())
self.ui.lineEdit.setText('')
self.ui.lineEdit.setFocus()
def editlist(self):
row=self.ui.listWidget.currentRow()
newtext, ok=QtWidgets.QInputDialog.getText(self, "Enter new text", "Enter
new text")
if ok and newtext != '':
self.ui.listWidget.takeItem(row)
self.ui.listWidget.insertItem(row,QtWidgets.QListWidgetItem(newtext))
def deletelist(self):
self.ui.listWidget.takeItem(self.ui.listWidget.currentRow())
def deletealllist(self):
self.ui.listWidget.clear()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyForm()
myapp.show()
sys.exit(app.exec_())
Program 6. Penggunaan list widget
Program 6 memiliki 3 tombol & slot tambahan. Untuk slot delete dan delete all,
program hanya perlu memanggil method bawaan list widget. Khusus untuk edit, diperlukan
proses pemanggilan Input Dialog yang menerima input text. Selain text, input dialog juga
memiliki varian untuk menerima input integer dan double. Nilai kembaliannya ada 2: nilai
yang dimasukkan dan pengklikan tombol ok. Hanya jika pengguna mengklik tombol ok dan
memberikan text, barulah proses edit dilakukan dengan terlebih dahulu menghapus item
terseleksi dan menambahkan item baru pada instansiasi obyek QListWidgetItem.
Tugas
1. Modifikasi program 2: hapus tombol. Proses penghitungan total harga terjadi tiap
kali sebuah check box di click. Hint: gunakan method clicked milik check box.
2. Buat aplikasi untuk menyimpan data diri:
a. Nama: Line Edit
b. Jenis Kelamin: Radio Button
c. Apakah memiliki: SIM, Paspor, STNK, ATM, dll. Masing-masing pilihan
menggunakan Check Box
d. Tinggi badan: Spin Box/ Double Spin Box
e. Tahun lahir: Slider. Batasi sekitar 5 tahun dari tahun kelahiran pribadi untuk
nilai maksimum dan minimum slider.
f. Tambahkan tombol yang jika diklik akan menyimpan data-data diatas ke
dalam sebuah List Widget
g. Tambahkan juga tombol untuk delete dan delete all
10
PRAKTIKUM PEMROGRAMAN DESKTOP
LAB COMMON COMPUTING TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
h. Nilai plus jika program menyimpan semua data di atas dalam satu item &
dapat melakukan edit data yang sudah ada tanpa harus mengetik ulang data
satu-per-satu.
11