Попытаюсь объяснить Вам. Слот представляет собой что то очень и очень похожее на функцию-член класса. Сам же сигнал он испускается при каком то определенном событии. Давайте сразу возьмем пример из жизни. Вы заходите в комнату там темно, вы нажимаете на включатель - включается лампочка. Теперь включатель - сигнал, а вы инициатор сигнала, лампочка - слот. Сигнал и слот в данном случае связан проводом. Лампочка включится только в том случае если будет нажат включатель.
связь в Qt осуществляется следующим образом
connect(объект_испускающий_сгнал,SIGNAL(имя_сигнала), класс_где_объявлен_слот, SLOT(имя_слота));
Один сигнал может быть связан с многим числом слотов, как например рубильник может подавать или отключать питание на сеть приборов. Сигнал - рубильник, слоты - приборы. Также множество сигналов могут быть связаны всего лишь с одним слотом.
Сигналы и слоты, позволяют связывать совершенно разные объекты. Это очень удобный и тонкий механизм. Очень легок для понимания.
Разберем ваш пример:
Расположим QPushButton, QLabel, QListWidget.
В конструкторе класса пишем connect(ui->button1, SIGNAL(clicked), this, SLOT(set_to_label()));
Так получается мы тут связали событие нажатия кнопки с функцией set_to_label()
В заголовочном файле класса декларируем слот:
private slots:
void set_to_label()
{
ui->label->setText(ui->listWidget->currentItem()->text());
}
Теперь при нажатии на кнопочку в лэйбле будет выведен текст текущего элемента в листвиджете.