将自定义类添加到Qt项目中
Adding a custom class to a Qt project
我一直在编写一个保存在自定义类中的物理模拟,我知道我正试图用Qt 4.8为它编写一个GUI。
在我看来,这样做的权利是添加我的类的一个实例作为Qt中MainWindow对象的成员。
我的家常菜课在这方面做得很好,但我很难把它添加到Qt项目中。我试着用通常的#包括"my_custom_class.h"(所有内容都在这个头中定义,我通常不会将其拆分到cpp文件中)
到我的mainwindow.h文件,在编译时,我为第一个类的每个成员都会得到一条错误消息:my_custom_class::member1()的多重定义,等等…
我还尝试了:
class my_custom_class;
但它也不起作用,我对此感到不舒服,因为我真的不明白它到底能做什么。
我通常不会将其拆分到cpp文件中
C和C++有头文件(.h)和实现文件(.C/.cpp)是有原因的。在没有看到代码的情况下,我想说你不使用实现文件也会给自己带来困难。
同样,如果不显示代码,就很难准确地识别问题,但我的猜测是,您缺少一个标头保护。
当您为头调用#include时,编译器会添加该文件的内容以进行构建。如果多个文件直接或通过调用包含头文件的文件间接调用相同的#include,则会添加相同的符号进行编译,从而导致"…的多重定义"错误
您可以在头文件中添加一个头保护,如下所示:-
#ifndef _MYCLASS_H_
#define _MYCLASS_H_
//... add your class here
#endif
第一次包含标头时,它将添加符号并定义_MYCLASS_H_。任何后续调用都会发现_MY_CLASS_H_已经定义,不会再添加符号。
您应该对所有头文件执行此操作。我还建议你在头中定义类,并创建一个单独的实现文件。如果有什么不同的话,它会加快编译时间。
相关文章:
- 错误-我无法在VS2019中打开新的Qt项目
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 尝试在 QT 项目中调用 Java 代码时未找到类异常
- 无法在默认Qt项目中打开源文件"ui_QtGuiApplication.h"
- 在路径的独立Qt项目中包括外部库
- 为Qt项目树中的所有项目定义全局宏
- CMake用于C++/Qt项目中的外部库
- 如何将ICU库添加到ARM的Qt项目中
- 将libtensorflow_cc.so文件链接到QT项目
- 将网络添加到Qt项目
- 编译Qt项目,得到错误QQmlEngine:没有这样的文件或目录编译终止
- 是否可以在QT项目中使用Tensorflow C++ API?
- 在Qt C++项目中使用Go
- 编译Qt项目给出了对运算符delete(void*,unsigned int)的未定义引用
- 为Qt项目的每个模块添加一个包含
- 如何使用.UI文件在QT Creator中使用CMAKE制作GUI QT项目
- 在Qt项目中包括谷歌测试
- Qt项目与自定义共享库交叉编译Qt
- 如何从Qt C++项目运行Python函数
- 如何使用 qmake 将 pcl 库成功添加到 qt 项目中