我想知道有没有办法在选中复选框后,它会连续运行相应的代码,直到取消选中。就我而言,它只运行一次。我已经读过,在按钮类中,有自动重复属性。但是,我没有找到任何与复选框相关的属性
答案 0 :(得分:0)
您需要的是两阶段设置:
QTimer
是否正在运行如果你现在有类似的东西
connect(checkBox, &QCheckBox::clicked, this, &MyClass::someFunction);
然后你需要这样的东西(假设一个支持C ++ 11的环境)
QTimer *timer = new QTimer(checkbox);
timer->setInterval(...); // how quickly you want to repeat
connect(timer, &QTimer::timeout, this, &MyClass::someFunction);
connect(checkBox, &QCheckBox::toggled, timer,
[timer] (bool checked) { if (checked) timer->start(); else timer->stop(); });
如果您的环境还不具备C ++ 11功能,那么您需要一个接收器插槽作为成员checked(bool)
和MyClass
中的timer
信号,以便可以在那个插槽。