2013-01-07 146 views
2

我无法在qt项目中打开一个新窗口/对话框窗口mainwindow。Qt打开第二个窗口

打开函数:

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

} 

主窗口包括:

#include "dodajprodukt.h" 

MainWindow.h

DodajProdukt *newDialog; 

类DodajProdukt是在desinger添加的新窗口。

我得到这个错误:

mainwindow.obj:-1: błąd:LNK2019: unresolved external symbol "public: __thiscall DodajProdukt::DodajProdukt(class QWidget *)" ([email protected]@[email protected]@@@Z) referenced in function "private: void __thiscall MainWindow::on_btDodajProdukt_clicked(void)" ([email protected]@@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 
+0

我的猜测是,设计师还应该生成一个'dodajprodukt.cpp'文件,其中包含您未与项目链接的窗口实现。 – Kos

+0

@kos如何将其链接到我的项目? –

回答

1

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

+0

更好的是,不要使用'IDE',如果它有缺陷并进入good ole命令行。 – user1095108

1

您必须添加相关DodajProdukt所有文件到你的.pro f ILE(如果使用QMAKE):

对于设计者创造的的.ui文件:

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

正如你显然也纷纷的.h/.cpp文件吧:

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

已经不够了。仍然没有工作。 –

+1

您是否在.cpp中实现了DodajProdukt :: DodajProdukt(QWidget *)? –

+0

你可以添加你的.pro文件吗? –

0

我有同样的问题。

,我删除.pro.user文件和删除项目的build文件夹

2

右键点击项目,然后后修复:清洁,运行的qmake和重建修复它为我

相关问题