我的QT项目有问题。我想创建一个可触摸的Qlabel,所以我在gui设计器中创建了一个占位符,并将其引用到我的"watchlistlabel"中,该标签从Qlabel扩展而来。当我现在启动我的应用程序时,我收到错误"没有匹配的函数用于调用WatchListLabel::WatchListLabel(QGroupBox*&)"name1=新的WatchListLabel(groupBox_3);
我的标签在一个分组框中,这会影响我的代码吗?为什么找不到匹配的函数?^
#include<QLabel>
class WatchListLabel: public QLabel
{
Q_OBJECT
private:
void mousePressEvent(QMouseEvent * event) override;
public:
WatchListLabel();
};
watchlistlabel.cpp
#include "watchlistlabel.h"
void WatchListLabel::mousePressEvent(QMouseEvent *event)
{
}
WatchListLabel::WatchListLabel()
{
}
QTdesigner
您缺少一个接受父窗口小部件的构造函数。对此的一般建议是使用QtCreator新类向导创建新的QObject子类,它会使一切正常。但要解决此类的问题,请尝试用以下构造函数替换默认构造函数:
声明单位:小时:
explicit WatchListLabel(QWidget *parent = nullptr);
.cpp中的定义:
WatchListLabel::WatchListLabel(QWidget *parent)
: QLabel(parent)
//, any other member variable initializations
{
// any constructor code if needed
}