Signals & Slots
Penjelasan
Signals & Slots adalah mekanisme komunikasi PALING KHAS Qt — signal adalah "pemberitahuan" bahwa sesuatu terjadi (mis. QPushButton::clicked), slot adalah fungsi yang dijalankan sebagai respons. QObject::connect() menghubungkan keduanya. Widget bawaan Qt sudah punya banyak signal siap pakai; class custom bisa mendefinisikan signal/slot sendiri lewat macro signals:/slots: (dibahas materi berikutnya).
Contoh Konsep
#include <QApplication>
#include <QPushButton>
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton tombol("Klik Aku");
QObject::connect(&tombol, &QPushButton::clicked, [](){
QMessageBox::information(nullptr, "Info", "Tombol diklik!");
});
tombol.show();
return app.exec();
}
Praktikum
Buat QPushButton dan QLabel. Pakai QObject::connect() untuk menghubungkan signal clicked() tombol ke lambda yang mengubah teks QLabel jadi "Tombol ditekan!" lewat setText().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Signal HANYA bisa dipicu lewat mekanisme Qt (emit), TIDAK BISA dipanggil langsung seperti method biasa — konsep ini beda dari event handler onClick React/Vue yang cuma fungsi biasa, Signals & Slots memakai infrastruktur meta-object khusus Qt (dihasilkan lewat Meta-Object Compiler/moc) di balik layar.