Я пытаюсь разобраться с механизмом сигналов и слотов Qt. У меня есть приложение с QPushButton и QSpinBox. Когда я нажимаю кнопку, я хочу, чтобы спинбокс изменился на 20. Какой сигнал и слот мне нужно настроить?
Приведенный ниже код показывает приложение, с которым у меня возникли проблемы с подключением.
Насколько я понимаю, слот setValue (int) QSpinBox не будет работать здесь, потому что сигнал clicked () QPushButton имеет другую сигнатуру, и в любом случае, как мне передать значение 20 в спинбокс? Нужно ли писать какую-то вспомогательную функцию, которая будет действовать как слот, который вызывает spinbox-> setValue (20)? Если да, то какую форму это примет?
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
QSpinBox *spinbox = new QSpinBox;
QPushButton *button = new QPushButton("Set to 20");
spinbox->setRange(0, 100);
// What should I put below?
QObject::connect(button, SIGNAL(clicked()), spinbox, SLOT(???????));
QLayout *layout = new QHBoxLayout;
layout->addWidget(spinbox);
layout->addWidget(button);
window->setLayout(layout);
window->show();
return app.exec();
}