我的QT项目有问题。我想创建一个可触摸的Qlabel,因此我在gui设计器中创建了一个占位符,并将其引用到从QLabel扩展的“ watchlistlabel”。当我现在启动我的应用程序时,出现错误“没有匹配的函数调用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()
{
}
答案 0 :(得分:0)
您缺少使用父窗口小部件的构造函数。对此的一般建议是使用Qt Creator新类向导创建新的QObject子类,它将使一切正确。但是要解决此类的问题,请尝试使用以下构造函数替换默认构造函数:
.h中的声明:
explicit WatchListLabel(QWidget *parent = nullptr);
.cpp中的定义:
WatchListLabel::WatchListLabel(QWidget *parent)
: QLabel(parent)
//, any other member variable initializations
{
// any constructor code if needed
}