我无法在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
答案 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文件并删除项目构建文件夹
后修复了它