我对QT编程很陌生,当我试图让程序打开一个我按下按钮创建的新对话框时,我遇到了这个奇怪的错误。
我正试图通过按下按钮从table.ui
打开robotdance.ui
,graph.ui
和scouting.ui
。在scouting.cpp
:
table *teamtable = new table(this); teamtable->show();
我已将.ui的头文件包含到scouting.cpp
中,但它给了我这个错误:
scouting.obj:-1:
错误:LNK2019:未解析的外部符号“public:__thiscall graph :: graph(class QWidget *)”(?? 0graph @@ QAE @ PAVQWidget @@@ Z)在函数“private:void __thiscall Scouting :: on_actionGraphs_triggered”中引用(无效)“(?on_actionGraphs_triggered @ Scouting @@ AAEXXZ)
显示了两个与此类似的错误。
为什么会这样?我按照这个人的教程做了他做的事,但他似乎没有任何错误。
scouting.cpp:
table.h:
table.cpp
位于附加评论部分,因为我无法发布超过2个链接。
答案 0 :(得分:3)
我相信您正在Windows上构建应用程序。我怀疑visual studio项目文件没有使用添加的文件进行更新,这导致了问题。只需删除visual studio build文件夹,然后重建即可。它会正常工作。
答案 1 :(得分:2)
通常有两个可能的原因:
A)您没有将graph.cpp
(和其他.cpp
个文件)添加到.pro
文件中
B)你的头文件看起来有点像这个
class graph : public QWidget
{
public:
graph( QWidget* parent );
~graph();
...
}
但您的源文件(.cpp)不包含此内容:
#include "graph.h"
graph::graph( QWidget* parent ) :
QWidget( parent )
{
...
}
graph::~graph()
{
...
}
答案 2 :(得分:1)
这是来自链接器的错误,无法将所有目标文件链接在一起。
.pro
文件中(例如:QT += core gui webkitwidgets network
)#include <QDialog>
)Run qmake
然后构建您的项目。