Study
Qt

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().

Editor Latihan

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.