【发布时间】:2014-04-15 09:27:26
【问题描述】:
我正在尝试在 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
我已经搜索了互联网并尝试按照下一个说明进行操作:
-
添加行:
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::DingButton(QWidget*) 实现了吗?
-
@KeillRandor 是的,实现了 DingButton::DingButton(QWidget* )