簡體   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