您可以使用Qt的信号槽机制来实现循环检测某一个参数,直至其改变的功能。以下是一个示例代码:

#include <QCoreApplication>
#include <QTimer>

class ParameterChecker : public QObject
{
    Q_OBJECT
public:
    explicit ParameterChecker(QObject *parent = nullptr) : QObject(parent) {}

public slots:
    void checkParameter()
    {
        // 检测参数的逻辑
        if (/* 参数已改变 */) {
            // 参数已改变,执行相应的操作
            // ...

            // 停止定时器
            m_timer.stop();
        }
    }

private:
    QTimer m_timer;
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    ParameterChecker checker;

    // 每隔一段时间检测一次参数
    QObject::connect(&checker.m_timer, &QTimer::timeout, &checker, &ParameterChecker::checkParameter);
    checker.m_timer.start(1000); // 1秒钟

    return a.exec();
}

#include "main.moc"

在上面的代码中,ParameterChecker类定义了一个checkParameter槽函数,用于检测参数是否改变。main函数中创建了一个ParameterChecker对象,并通过定时器的timeout信号连接到checkParameter槽函数上,定时器每隔一段时间触发一次checkParameter槽函数。当参数改变后,执行相应的操作,并停止定时器。

您可以根据实际需求修改checkParameter槽函数中的检测逻辑和相应的操作。

Qt 循环检测某一个参数直至其改变

原文地址: https://www.cveoy.top/t/topic/i382 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录