Penggunaan Markdown dan Slot di PyQt5

Penggunaan Markdown dan Slot di PyQt5

Dalam pengembangan aplikasi berbasis GUI menggunakan PyQt5, kita seringkali memerlukan cara untuk menghubungkan antara objek-objek yang berbeda. Salah satu contoh penggunaannya adalah pada saat kita ingin mengubah nilai dari sebuah QLineEdit setelah pengguna memilih opsi di sebuah QComboBox.

Contoh 1: Menggunakan Slot

Dalam contoh di bawah ini, kita akan membuat sebuah slot yang akan dipanggil ketika pengguna memilih opsi di dalam QComboBox.

void Window::accessChanged(int index)
{
 switch (index) {
 case 0:
 accessLineEdit->setReadOnly(false);
 break;
 case 1:
 accessLineEdit->setReadOnly(true);
 break;
 }
}

Dalam contoh di atas, kita memiliki sebuah slot yang namanya accessChanged. Slot ini akan dipanggil ketika pengguna memilih opsi di dalam QComboBox. Dalam slot ini, kita menggunakan switch-case untuk mengubah nilai dari sebuah QLineEdit.

Contoh 2: Menggunakan Signal dan Slot

Dalam contoh di bawah ini, kita akan membuat sebuah signal yang akan dipanggil ketika pengguna memasukkan teks ke dalam QLineEdit.

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class WinDialog(QtWidgets.QDialog):
 def __init__(self, parent=None):
 super(WinDialog, self).__init__(parent)

 # ...

 self.length_edit.textEdited.connect(self.onTextEdited)
 self.thick_edit.textEdited.connect(self.onTextEdited)

 def onTextEdited(self):
 l = self.length_edit.text()
 t = self.thick_edit.text()
 self.propertyWidget.display(l, t)

Dalam contoh di atas, kita memiliki sebuah signal yang namanya textEdited. Signal ini akan dipanggil ketika pengguna memasukkan teks ke dalam QLineEdit. Dalam fungsi onTextEdited, kita mengambil nilai dari dua QLineEdit dan kemudian memanggil fungsi display dari objek PropertyWidget.

Menggunakan QIntValidator

Dalam contoh di bawah ini, kita akan menggunakan QIntValidator untuk memastikan bahwa pengguna hanya dapat memasukkan angka ke dalam QLineEdit.

val_lenght = QtGui.QIntValidator(0, 100000, self.length_edit)
self.length_edit.setValidator(val_lenght)

val_thick = QtGui.QIntValidator(0, 100000, self.thick_edit)
self.thick_edit.setValidator(val_thick)

Dalam contoh di atas, kita membuat sebuah QIntValidator yang akan memastikan bahwa pengguna hanya dapat memasukkan angka ke dalam dua QLineEdit.