2013-01-07 6 views
2

Je ne peux pas ouvrir une nouvelle fenêtre/fenêtre de formulaire de dialogue dans le projet qt.Qt ouvre la deuxième fenêtre

fonction Open:

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

} 

MainWindow comprend:

#include "dodajprodukt.h" 

mainwindow.h

DodajProdukt *newDialog; 

classe DodajProdukt est nouvelle fenêtre ajoutée desinger.

Je reçois cette erreur:

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)

EDIT:

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; 
} 

fichier Pro:

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

Je pense que le concepteur devrait également générer un fichier 'dodajprodukt.cpp' avec l'implémentation de la fenêtre que vous ne liez pas avec votre projet. – Kos

+0

@kos comment le relier à mon projet? –

Répondre

1

I eu la même erreur. Créez un nouveau projet et copiez le code. Puis créez un exemple de code simple pour vérifier si cette méthode fonctionne.

+0

Mieux encore, n'utilisez pas le 'IDE' du tout, s'il y a des bogues et allez à la bonne ligne de commande de ole '. – user1095108

1

Vous devez ajouter tous les fichiers liés à DodajProdukt à votre .pro f ile (si vous utilisez qmake):

Pour le fichier .ui créé dans le concepteur:

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

Et comme vous avez apparemment aussi .h/fichiers .cpp pour elle:

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

Est déjà inserert. Et toujours pas de travail. –

+1

Avez-vous implémenté DodajProdukt :: DodajProdukt (QWidget *) dans votre fichier .cpp? –

+0

Pouvez-vous ajouter votre fichier .pro? –

0

J'ai le même problème.

et je fixe après la suppression du fichier de .pro.user et la suppression du dossier de construction du projet

2

Faites un clic droit sur le projet puis: Clean, Exécutez qmake et Reconstruire fixe pour moi