繁体   English   中英

Qt自定义小部件错误

[英]Qt custom widget error

我正在尝试在Qt(名为DingButton,继承自QPushButton)中制作简单的自定义小部件。 我做到了。 在Qt Designer中可以看到它。 但是,当我编译包含此自定义小部件的项目(名为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

我已经搜索了Internet,并尝试遵循以下说明:

  • 添加行:

    LIBS + = -Wl,-rpath,/ usr / local / qt4 / plugins / designer -L / usr / local / qt4 / plugins / designer -l libding-button-plugin.so

到.pro文件

  • 创建.pri文件并将其包含到.pro中

但这并不成功。

为什么会这样? 以及如何解决这个问题?

请帮我

ding-button-plugin.pro

CONFIG += plugin release designer
TEMPLATE = lib
TARGET = $$qtLibraryTarget($$TARGET)
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target
INCLUDEPATH += .
LIBS += -Wl,-rpath,/usr/local/qt4/plugins/designer -L/usr/local/qt4/plugins/designer -l     libding-button-plugin.so
HEADERS += DingButton.h DingButtonPlugin.h
SOURCES += DingButton.cpp DingButtonPlugin.cpp

编辑:DingButton :: DingButton(QWidget *)已实现

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

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

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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM