При разработке GUI приложений с использованием фрейморка Qt взаимодействие компонент интерфейса с пользователем основано на технологии слотов и сигналов.

Слот -- метод некоторого класса -- наследника QObject, обрабатывающий некоторой событие, произошедшее с компонентой UI.

Сигнал -- абстракция. Можно воспринимать как событие, произошедшее с компонентой UI или с каким-либо другим классом. Синтаксис описания такой же, как у метода класса.

Слоты соединяются с сигналами посредством метода QObject::connect.

Пример приложения, в котором создается одна кнопка (виджет QPushButton) и сигнал clicked() этой кнопки (этот сигнал посылается при нажатии на кнопку) соединяется со слотом close() главного окна, что приведёт к закрытию окна.

#include<QApplication>
#include<QMainWindow>
#include<QPushButton>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow * Window = new QMainWindow;
    QPushButton * QuitButton = new QPushButton("Quit", Window);
    QuitButton->setGeometry(20, 20, 100, 20);
    QObject::connect(QuitButton, SIGNAL(clicked()),
                     Window, SLOT(close()));
    Window->show();
    return a.exec();
}

В реальности использование технологии слотов и сигналов не ограничивается разработкой GUI. По сути, эта технология предоставляет универсальный способ взаимодействия объектов, которые ничего не знаю друг о друге.