connect(timer, &QTimer::timeout, this, &void MainWindow:: Teltext);報錯,未預取的類型void
时间: 2023-07-10 10:28:14 浏览: 66
在这行代码中,将void作为槽函数的返回类型是不正确的,因为void是一个关键字,不能被用作返回类型。正确的写法应该是:
```cpp
connect(timer, &QTimer::timeout, this, &MainWindow::Teltext);
```
这里的MainWindow是指你的类名,Teltext是指你的槽函数名称,注意不要在函数名后面加上void,因为这会被解析为函数的返回类型。如果你的槽函数确实不需要返回值,那么可以将其返回类型设置为void,例如:
```cpp
private slots:
void Teltext();
```
这样就可以正常连接信号和槽了。
相关问题
解释以下代码:connect(timer, &QTimer::timeout, this, &BallTrajectory::readFile);
这段代码是用于连接一个 QTimer 对象的 timeout 信号与 BallTrajectory 类的 readFile() 槽函数。具体来说,connect() 是 Qt 中的一个信号与槽机制的函数,用于在对象之间建立信号与槽之间的连接。其中,timer 是 QTimer 对象的指针,&QTimer::timeout 是 QTimer 类中 timeout 信号的地址,this 是 BallTrajectory 类的指针,&BallTrajectory::readFile 是 BallTrajectory 类中 readFile() 槽函数的地址。这样,当 QTimer 对象发出 timeout 信号时,就会自动调用 BallTrajectory 类中的 readFile() 槽函数。
timer =new QTimer(this); timer->start(500); connect(timer, &QTimer::timeout, this, &MainWindow::moveAgvs);},修改爲黨agv的current坐標都為整數型時,觸發moveagvs
如果将所有 AGV 的 current 坐标都改为整数型,可以修改成如下代码:
```
timer = new QTimer(this);
timer->start(500);
connect(timer, &QTimer::timeout, this, &MainWindow::moveAgvs);
```
这样,每隔 500ms 就会触发 `moveAgvs` 方法,进行 AGV 的移动。需要注意的是,由于坐标改为了整数型,可能会导致移动时出现卡顿或者抖动的情况,因此需要对代码进行一些优化,以确保 AGV 的移动效果流畅。例如可以尝试将 `setCurrentX` 和 `setCurrentY` 方法修改为整数型版本,或者在计算坐标时对其进行四舍五入操作,以尽可能减小误差。
阅读全文