Я хочу перегружать SLOT Qt либо реагировать на излучаемый clicked()
SIGNAL
из QPushButton
или stateChanged(int)
сигнала от QCheckBox
(так как нет никакого сигнала, который излучает, когда флажок установлен только) ,Как отобразить перегружать Qt слот
Так что это мои два SLOT.
void Widget::sendCom(QString data)
{
std::cout << "In scope of sendCom"<< std::endl;
}
void Widget::sendCom(QString data, int state)
{
std::cout << "In scope of overloaded sendCom: " << std::endl;
}
С widget->createButton(SLOT(sendCom(QString), data);
я называю следующее и отображение работает отлично.
void Widget::createButton(const char *member, QString &data)
{
QPushButton *button = new QPushButton(this);
signalMapper = new QSignalMapper(this);
signalMapper->setMapping(button, data);
connect(signalMapper, SIGNAL(mapped(QString)), this, member);
connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));
...
}
void Widget::createCheckBox(const char *member, QString &data)
{
}
с widget->createCheckBox(SLOT(QString, int), data)
я хочу передать в состоянии ChechBox к перегруженной Widget::sendCom(QString data, int state)
, а также. Как должно выполняться сопоставление?
Это может быть наиболее эффективным способом. Я думал о том, чтобы идентифицировать отправителя и получить состояние через 'setCheckState' с помощью dynamic_cast – tobilocker
Реализовано как предложено. Работает как шарм. – tobilocker
Рад это услышать и поблагодарить за отзыв. – hmuelner