如果使用带有Functor(函数对象)的
overloaded method,则可以使用静态QTimer单次拍摄功能.这将允许您捕获所需的变量;哪个电机,速度,动作等.如果你不熟悉Functors,你可以阅读它们
here.
或者,由于问题没有提供代码示例,我们假设您已经编写了启动和停止电机的功能.对于更直接的方法,with C++11,你可以这样做:
StartMotor(1);
// Stop in 20 seconds
QTimer* p1 = new QTimer;
connect(p1, &QTimer::timeout, [=]{
StopMotor(1);
p1->deleteLater(); // clean up
});
p1->start(1000 * 20); // trigger in 20 seconds
// After 10 seconds, start motor 2
QTimer* p2 = new QTimer;
connect(p2, &QTimer::timeout, [=]{
StartMotor(2);
// And Stop Motor 1
StopMotor(1);
p2->deleteLater(); // clean up
});
p2->start(1000 * 10); // trigger in 10 seconds
……对于每个定时动作等等.