问题: 我有一个函数 void myFunc(data)
我正在使用 QSqlQuery 从数据库读取数据:
QSqlQuery qry;
if (qry.exec("SELECT data, interval from table"))
{
while(qry.next())
{
// Somehow create and call function: myFunc(int data) periodically with interval = interval
}
}
据我所知,我可以使用这样的计时器:
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(myFunc()));
timer->start(interval); //time specified in ms
但是当我创建这个计时器时,如何将参数data
传递给myFunc
?
请您参考如下方法:
如果您使用 C++11,则可以将计时器连接到 lambda 函数,在其中捕获数据值。
示例(未经测试):
int interval = 500;
int data = 42;
QTimer *timer = new QTimer(this);
connect(timer, &QTimer::timeout, [data] {
/* Implement your logic here */
});