У меня проблемы с простым приложением в Qt. Приложение выглядит как простой калькулятор с кнопками (цифры от 0 до 9).
После нажатия кнопки приложение должно отобразить на выходе приложения соответствующее число в виде цифры и в виде цифры (слова).
Мне нужно использовать QSignalMapper
. Как я могу это решить?
Мой код до сих пор:
QLayout* Widget::createButtons()
{
QGridLayout *lt = new QGridLayout(this);
QSignalMapper *signalMapper = new QSignalMapper(this);
connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(keyPressed(int)));
QString txtButtons[10] = {"zero", "one", "two",
"three", "four", "five",
"six", "seven", "eight",
"nine"};
for(int i=0; i<10; i++) {
buttons[i] = new QPushButton(txtButtons[i], this);
signalMapper->setMapping(buttons[i], i);
connect(buttons[i], SIGNAL(clicked()), signalMapper, SLOT(map()));
lt->addWidget(buttons[i], i/3, i%3);
}
return lt;
}
void Widget::keyPressed(int buttonID)
{
qDebug() << QString::number(buttonID) + " was clicked";
}
button9 = new QPushButton(tr("9"), this); connect(button9, SIGNAL(clicked(bool)), m, SLOT(map())); m->setMapping(button0, 9);
- person pank_94   schedule 28.05.2016