QCheckbox: сигнал stateChanged не испускается

У меня есть следующая ситуация в моей функции слота QT для сигнала stateChanged:

void ui::myslot(int state) {
  ...
  if (condition) {
    checkbox->setChecked(true);
  }
  ...
}

В случае, если мой флажок уже установлен, и когда я попытаюсь снять его, при условии, что условие выполнено, флажок будет установлен снова. Однако, когда я пытаюсь снять отметку снова, а условие по-прежнему верно, оно просто становится непроверенным, и сигналы не испускаются. То есть функция выше даже не вызывается...

Есть идеи, что здесь может происходить?

Большое спасибо! :)


person Leta    schedule 23.07.2017    source источник


Ответы (1)


Вы пытались создать временный слот, соединить его с сигналом stateChanged()? Например:

void onStateChanged(int state);

Вы можете определить слот как:

void onStateChanged(int state)
{
    qDebug() << "State changed.";
}

Не забудьте включить заголовок в файл .cpp. Затем соедините слот с сигналом и запустите приложение. Если вы видите "State changed." в стандартном выводе и выполнение достигает слота, то сигнал испускается правильно.

person Sergey Gatich    schedule 23.07.2017