Допустим у нас приложение "Калькулятор". Имеется 9 кнопок с цифрами дабы не связывать каждое нажатие отдельной кнопочки с одним и тем же слотом обрабатывающим вывод цифры на табло и не плодить код, есть прекрасный класс в Qt -
QSignalMapper
Простой пример:
В заголовочном файле декларируем:
QSignalMapper *signalMapper;
И тут же создаем приватный слот:
void clicked(const QString & text);
Который будет выводить сообщение с текстом нажатой кнопочкиДалее в конструкторе класса создаем объект класса QSignalMapper
signalMapper = new QSignalMapper(this);
Далее добавляем в QGridLayout yнаши 9 кнопочек:
for (int i = 0; i < 9; ++i)
{
//Кнопочка с текстом текущей итерации цикла
QPushButton *button = new QPushButton(QString::number(i));
&
...
Читать дальше »