我想在GUI中使用C ++和Qt检查对象值。所以为此,我想连续调用该函数,以便我可以检查对象值并发出信号。 有没有办法连续调用功能插槽而不用任何按钮连接?
答案 0 :(得分:1)
设置计时器?
编辑:我的不好,代码不完全正确。
QTimer t;
connect(&t, SIGNAL(timeout()), SLOT(checkValue()));
t.start(100); // Set interval to whatever you want
答案 1 :(得分:1)
使用QTimer
class MyObject : public QObject{
Q_OBJECT
QTimer timer_;
MyObject(QObject* parent = 0) :QObject(parent), timer_(){
timer_.setInterval(1000);
timer_.setSingleShot(false);
timer_start();
connect(&t, &QTimer::timeout, this, &MyObject::timerSignal);
}
signals:
void timerSignal(){
//...
}
}
答案 2 :(得分:1)
让changeValue
函数本身发出valueChanged
信号,而不是轮询更改,而是通知它,你可能会更好。你不想提醒价值保持不变(通过连续调用Slot),而是你想在价值变化时做点什么。
为这类事添加计时器非常麻烦。