看起来我对使用Qt的c ++编程有点新意,所以我在win 7 64位上下载了5.0版本。我已经创建了一个名为Mafenetre的类,我实现了它的代码,它看起来很完美但是当我尝试运行主程序时它说 C:\ Users \ Zbart3i \ Downloads \ Programs \ test \ main.cpp:3:错误:C1083:无法打开包含文件:'Mafenetre.h':没有这样的文件或目录
这是我的专业代码:
SOURCES += \
main.cpp \
mafenetre.cpp
QT+=widgets
HEADERS += \
mafenetre.h
这是Mafenetre.h的代码:
#ifndef MAFENETRE_H
#define MAFENETRE_H
include < QtWidgets>
class Mafenetre:public QWidget
{
public:
Mafenetre();
private:
QPushButton *m_bouton;
};
#endif // MAFENETRE_H
这是Mafenetre's.cpp:
#include "mafenetre.h"
Mafenetre::Mafenetre():QWidget()
{
setFixedSize(300,150);
m_bouton=new QPushButton("pimp mon bouton",this);
m_bouton->setFont(QFont("monotype corsiva",15));
m_bouton->setCursor(Qt::PointingHandCursor);
}
和main.cpp
#include< QtWidgets/QApplication>
#include< QtWidgets>
#include< Mafenetre.h>
void main(int argc, char *argv[])
{
QApplication app(argc, argv);
Mafenetre fenetre;
fenetre.show();
app.exec();
}
答案 0 :(得分:0)
在C ++中,你应该使用 #include“name”,而不是 #include (引用标记而不是三角括号),因为它们有不同的含义。
#include 查找安装了库(包括标准库)的某些目录。 #include“name”首先在项目的文件夹中查找,然后检查其他目录。
嗯,为了在技术上准确,它们在一个顺序中查找的文件夹是特定于编译器的。
此:
#include <Mafenetre.h>
应该是这样的:
#include "Mafenetre.h"
阅读本文:
MinGW #include search directories
默认搜索的其他目录
目录的最小列表,如上所述 上面,指定默认搜索的唯一位置, 用于系统头文件或与用户安装相关联的标头 库;但是,有一个例外。精明的读者可能会有 注意到包含文件搜索路径是逐项列出的 顺序列表,第二个连接到第一个; 然而,第一个,被确定为#include“...”搜索列表 似乎是空的。实际上,这种明显的空虚可能就是这样 误导;除非用户在调用时指定“-I-”选项 GCC,这个列表只包含一个目录:其中的目录 包含#include“file”指令的源文件驻留。
请注意,不会在#include指令的
#include <file>
形式指定的头中搜索这一个附加目录;它仅适用于使用指令的#include "file"
形式指定的标头。
确保您的“Mafenetre.h”文件与main.cpp文件位于同一文件夹中。否则,您需要执行#include“folderPath / fileName.h”,并在.pro文件中添加 SOURCES 或 HEADERS 变量的路径。
同时确保拼写相同,并使用正确的案例 - 有时它很重要,有时则不然。
如果您仍然遇到问题,请尝试编译一个只包含一个main.cpp的简单项目,以确保所有内容都安装正确。
答案 1 :(得分:0)
您确定已包含正确的标题。此外,我没有看到您在头文件中使用QObject宏。它应该是这样的:
Mafenetre.h:
#ifndef MAFENETRE_H
#define MAFENETRE_H
#include <QWidget>
class Mafenetre : public QWidget
{
Q_OBJECT
public:
explicit Mafenetre(QWidget *parent = 0);
signals:
public slots:
};
#endif // MAFENETRE_H
Mafenetre.cpp:
#include "mafenetre.h"
Mafenetre::Mafenetre(QWidget *parent) :
QWidget(parent)
{
}
最后你的main.cpp应该是这样的,检查标题:
......
#include "mafenetre.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Mafenetre m;
m.show();
return a.exec();
}