Как отобразить карту для перегрузки слота Qt

Я хочу перегрузить слот Qt, чтобы реагировать на clicked() SIGNAL из QPushButton или stateChanged(int) СИГНАЛ от QCheckBox (поскольку нет СИГНАЛА, который излучается, когда установлен только флажок).

Так что это мои два слота.

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) я хочу перейти в состояние ЧечБокса к перегруженному Widget::sendCom(QString data, int state)также. Как сделать картирование?

0

Решение

Согласно документации QSignalMapper только управляет беспараметрическими сигналами. Вы можете получить новый класс из QCheckBox где вы подключаете stateChanged(int) СИГНАЛ в соответствующий слот в классе, где вы излучаете setChecked() или setUnchecked() СИГНАЛ, который может быть обработан QSignalMapper,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]