【问题标题】:QCheckbox: stateChanged signal not emittedQCheckbox:未发出 stateChanged 信号
【发布时间】:2017-07-23 23:59:53
【问题描述】:

对于 stateChanged 信号,我的 QT Slot 函数中有以下情况:

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

如果我的复选框已经被选中,当我尝试取消选中它时,如果条件满足,复选框将再次被选中。 但是,当我尝试再次取消选中它并且条件仍然为真时,它只是变为未选中,没有发出任何信号。即,上面的函数甚至没有被调用...

知道这里会发生什么吗?

非常感谢! :)

【问题讨论】:

    标签: c++ qt checkbox qcheckbox


    【解决方案1】:

    您是否尝试创建一个临时槽,将其与 stateChanged() 信号连接?例如:

    void onStateChanged(int state);
    

    您可以将插槽定义为:

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

    不要忘记在 .cpp 文件中包含标头。然后将插槽与信号连接并启动应用程序。如果您在标准输出中看到"State changed." 并且执行到达槽位,则信号已正确发出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2016-07-30
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多