2013-01-07 188 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和重建修復它爲我

相關問題