D:\QT5.9.0\Project\test1\test15\clockwidget.h:33: error: no matching function for call to 'ClockWidget::connect(QTimer*&, void (QTimer::*)(QTimer::QPrivateSignal), ClockWidget*, <unresolved overloaded function type>)' connect(timer, &QTimer::timeout, this, &ClockWidget::update); ^
时间: 2024-03-16 17:47:52 浏览: 188
基于QT的widget功能使用实例
这个错误提示是因为 `connect` 函数无法确定如何匹配 `&ClockWidget::update` 这个槽函数的参数类型。你需要在 `ClockWidget` 类中添加一个 `Q_OBJECT` 宏声明,以让 Qt 的元对象系统为该类生成必要的信息。
请注意,`Q_OBJECT` 宏必须出现在类的第一个访问说明符之前,例如:
```c++
#ifndef CLOCKWIDGET_H
#define CLOCKWIDGET_H
#include <QWidget>
#include <QTimer>
class ClockWidget : public QWidget {
Q_OBJECT // 必须添加的宏声明
public:
ClockWidget(QWidget* parent = nullptr);
protected slots:
void update();
private:
QTimer* m_timer;
};
#endif // CLOCKWIDGET_H
```
如果还有其他问题,请告诉我。
阅读全文