qt已有一个按200ms间隔绘制路线的函数,需要在路线绘制结束后重复循环绘制
时间: 2023-07-16 18:15:41 浏览: 45
你可以使用Qt的定时器(QTimer)来实现重复绘制。在路线绘制结束后,启动一个定时器,并将定时器的时间间隔设置为200ms。每当定时器超时时,定时器会触发其timeout()信号,你可以在该信号的槽函数中实现路线的重复绘制。
具体实现步骤如下:
1. 在类中定义一个QTimer对象
```cpp
private:
QTimer *m_timer;
```
2. 在类的构造函数中创建定时器对象,并将其与槽函数连接
```cpp
MyClass::MyClass(QWidget *parent)
: QWidget(parent)
{
// 创建定时器对象
m_timer = new QTimer(this);
// 将定时器的timeout()信号与槽函数进行连接
connect(m_timer, &QTimer::timeout, this, &MyClass::onTimerTimeout);
}
```
3. 在路线绘制结束后启动定时器
```cpp
void MyClass::onRouteDrawFinished()
{
// 启动定时器
m_timer->start(200);
}
```
4. 在定时器的槽函数中实现路线的重复绘制
```cpp
void MyClass::onTimerTimeout()
{
// 在这里实现路线的重复绘制
}
```
注意:在重复绘制路线时,你需要在每次绘制前先清除原来的路线,否则路线会重叠在一起,导致画面混乱。你可以在重复绘制路线前调用Qt的绘图API来清除原来的路线。