Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt自定义小部件错误_C++_Qt - Fatal编程技术网

C++ Qt自定义小部件错误

C++ Qt自定义小部件错误,c++,qt,C++,Qt,我试图在Qt中创建简单的自定义小部件(名为DingButton,继承自QPushButton)。 我成功了。它可以在Qt设计器中看到。但当我编译包含此自定义小部件的项目(名为DingDemo)时,我得到一个错误: 对'DingButton::DingButton(QWidget*)的未定义引用 它指向ui_DingDemo.h中的下一个代码: class Ui_DingDemo { public: DingButton *dingbutton; void setupUi(QWid

我试图在Qt中创建简单的自定义小部件(名为DingButton,继承自QPushButton)。 我成功了。它可以在Qt设计器中看到。但当我编译包含此自定义小部件的项目(名为DingDemo)时,我得到一个错误:

对'DingButton::DingButton(QWidget*)的未定义引用

它指向ui_DingDemo.h中的下一个代码:

class Ui_DingDemo
{
public:
    DingButton *dingbutton;
    void setupUi(QWidget *DingDemo)
    {
        if (DingDemo->objectName().isEmpty())
            DingDemo->setObjectName(QString::fromUtf8("DingDemo"));
        DingDemo->resize(226, 97);
        dingbutton = new DingButton(DingDemo);  //<---------error here
编辑:
DingButton::DingButton(QWidget*)已实现

您必须实现在发生错误的行中调用的此构造函数

DingButton(QWidget *widget = 0);//In your DingButton class

DingButton::DingButton(QWidget *widget) : QWidget(widget) //In your .cpp
{

}

DingButton::DingButton(QWidget*)实现了吗?@KeillRandor是的,DingButton::DingButton(QWidget*)实现了编辑应该是DingButton::DingButton(QWidget*widget):QWidget(widget)要正确继承父项。oops忘记了这一部分,你当然是对的。谢谢
DingButton(QWidget *widget = 0);//In your DingButton class

DingButton::DingButton(QWidget *widget) : QWidget(widget) //In your .cpp
{

}