LNK2019 QT IDE生成的GUI文件出错

时间:2016-06-01 12:29:52

标签: c++ qt qt-creator lnk2019

我开始使用Qt-Creator和Designer在C ++中为应用程序开发GUI。我总是使用Qt提供的对话框添加新文件(cpp,h,ui)。

这是我现在得到的:

  

moc_basewidget.obj:-1:错误:LNK2019:未解析的外部信号“”public:void __cdecl BaseWidget :: onNewProjects(void)“(?onNewProjects @ BaseWidget @@ QEAAXXZ)”in function“”private:static void __cdecl BaseWidget :: qt_static_metacall(类QObject *,枚举QMetaObject :: Call,int,void * *)“(?qt_static_metacall @ BaseWidget @@ CAXPEAVQObject @@ W4Call @ QMetaObject @@ HPEAPEAX @ Z)”。

这是我的BaseWidget.h:

#ifndef BASEWIDGET_H    
#define BASEWIDGET_H

#include <QWidget>
#include "mainmenu.h"
#include "projectlist.h"

namespace Ui {
class BaseWidget;
}

class BaseWidget : public QWidget
{
    Q_OBJECT

public:
    explicit BaseWidget(QWidget *parent = 0);
    ~BaseWidget();

public slots:
  //called in MainMenu
  void onProjects();    

private:
    Ui::BaseWidget *ui;
    MainMenu * mainMenu;
    ProjectList * projectList;
};

#endif //BASEWIDGET_H

我的BaseWidget.cpp:

#include "basewidget.h"
#include "ui_basewidget.h"

BaseWidget::BaseWidget(QWidget *parent) : QWidget(parent), ui(new Ui::BaseWidget) {

    ui->setupUi(this);

    //add all the widgets

    this->mainMenu = new MainMenu(this);
    ui->stackedWidget->addWidget(mainMenu);
    this->projectList = new ProjectList(this);
    ui->stackedWidget->addWidget(projectList);

}

BaseWidget::~BaseWidget()
{
    delete ui;
}

void BaseWidget::onProjects()
{
    ui->stackedWidget->setCurrentWidget(this->projectList);
}

最后,我的.pro文件:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = GUI
TEMPLATE = app


SOURCES += main.cpp\
        basewidget.cpp \
    mainmenu.cpp \
    projectlist.cpp

HEADERS  += basewidget.h \
    mainmenu.h \
    projectlist.h

FORMS    += basewidget.ui \
    mainmenu.ui \
    projectlist.ui

我已经读了几个小时了。我尝试清理构建目录并重建,但它始终归结为此。

0 个答案:

没有答案