Qt打开第二个窗口

时间:2013-01-07 18:00:57

标签: c++ qt

我无法在qt项目中打开一个新窗口/对话框表单主窗口。

打开功能:

    void MainWindow::on_btDodajProdukt_clicked()
{
    newDialog = new DodajProdukt(this);
    newDialog->show();

}

MainWindow包括:

#include "dodajprodukt.h"

MainWindow.h

    DodajProdukt *newDialog;

Class DodajProdukt是desinger中添加的新窗口。

我收到此错误:

  

mainwindow.obj:-1:błąd:LNK2019:未解析的外部符号“public:__thiscall DodajProdukt :: DodajProdukt(class QWidget *)”(?? 0DodajProdukt @@ QAE @ PAVQWidget @@@ Z)在函数“private”中引用:void __thiscall MainWindow :: on_btDodajProdukt_clicked(void)“(?on_btDodajProdukt_clicked @ MainWindow @@ AAEXXZ)

编辑:

dodajprodukt.cpp

    #include "dodajprodukt.h"
#include "ui_dodajprodukt.h"


DodajProdukt::DodajProdukt(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DodajProdukt)
{
    ui->setupUi(this);
}

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

专业档案:

    QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Hurtownia
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    dodajprodukt.cpp \
    listaproduktow.cpp

HEADERS  += mainwindow.h \
    dodajprodukt.h \
    listaproduktow.h

FORMS    += mainwindow.ui \
    dodajprodukt.ui \
    listaproduktow.ui

4 个答案:

答案 0 :(得分:3)

右键单击项目然后:清理,运行qmake并重建为我修复

答案 1 :(得分:1)

您必须将与DodajProdukt相关的所有文件添加到.pro文件中(如果使用qmake):

对于在designer中创建的.ui文件:

FORMS += dodajprodukt.ui # assuming that's how it's called

因为你显然也有.h / .cpp文件:

HEADERS += dodajprodukt.h
SOURCES += dodajprodukt.cpp

答案 2 :(得分:1)

我有同样的错误。创建一个新项目并复制代码。 然后创建一个简单的示例代码来检查此方法是否有效。

答案 3 :(得分:0)

我有同样的问题。

我在删除.pro.user文件并删除项目构建文件夹

后修复了它