热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用CMake项目在QtCreator中添加一个类?-HowtoaddaclassinQtCreatorwithCMakeproject?

IusedtowritecodewithVisualStudio,whichisprettyeasytoaddaclass.Recently,Iturntous

I used to write code with Visual Studio, which is pretty easy to add a class. Recently, I turn to use Qt Creator to write pure C++ project and there are always something wrong with adding a class. The codes are like these:

我曾经用Visual Studio编写代码,这很容易添加一个类。最近,我转而使用Qt Creator编写纯C ++项目,添加类总是有问题。代码如下:

#include 
#include "hello.h"

using namespace std;

int main()
{
    Hello H;
    H.say();
    cout <<"Hello World!" <

I created a class named Hello and include it into the main.cpp, but when I compile it, some errors will happen.

我创建了一个名为Hello的类并将其包含在main.cpp中,但是当我编译它时,会发生一些错误。

enter image description here

So how to add a class with QT creator? Thanks in advance!

那么如何用QT创建者添加一个类?提前致谢!

2 个解决方案

#1


7  

A really small CMake example project that uses a main.cpp and a Hello class would look like this:

使用main.cpp和Hello类的一个非常小的CMake示例项目如下所示:

CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.11)

project(example)

# Useful CMake options for Qt projects
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

# Search desired Qt packages
find_package(Qt5Core REQUIRED)

# Create a list with all .cpp source files
set( project_sources
   main.cpp
   hello.cpp
)

# Create executable with all necessary source files
add_executable(${PROJECT_NAME}
  ${project_sources}
)

qt5_use_modules( ${PROJECT_NAME} Core )

main.cpp:

#include 
#include "hello.h"

using namespace std;

int main()
{
    Hello H;
    H.say();
    cout <<"Hello World!" <

Hello.h:

#ifndef HELLO_H
#define HELLO_H


class Hello
{
public:
   Hello();
   void say();
};

#endif // HELLO_H

Hello.cpp:

#include 
#include "Hello.h"

Hello::Hello()
{

}

void Hello::say()
{
   std::cout <<"Hello from hello class!" <

#2


-1  

Manual way : Edit the .pro, then add the .h and the .cpp in the "SOURCES" and "HEADERS" section like this:

手动方式:编辑.pro,然后在“SOURCES”和“HEADERS”部分添加.h和.cpp,如下所示:

SOURCES += hello.cpp
HEADERS += hello.h

推荐阅读
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • 在进行网络编程时,准确获取本地主机的IP地址是一项基本但重要的任务。Winsock作为20世纪90年代初由Microsoft与多家公司共同制定的Windows平台网络编程接口,为开发者提供了一套高效且易用的工具。通过Winsock,开发者可以轻松实现网络通信功能,并准确获取本地主机的IP地址,从而确保应用程序在网络环境中的稳定运行。此外,了解Winsock的工作原理及其API函数的使用方法,有助于提高开发效率和代码质量。 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • 在Python中,是否可以通过使用Tkinter或ttk库创建一个具有自动换行功能的多行标签,并使其宽度能够随着父容器的变化而动态调整?例如,在调整NotePad窗口宽度时,实现类似记事本的自动换行效果。这种功能在设计需要显示长文本的对话框时非常有用,确保文本内容能够完整且美观地展示。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 英语面试技巧:提升个人技能与表现
    在英语面试中,个人技能是指除专业知识外,能够促进职业发展的各种能力。虽然你可能具备多种技能,但建议重点突出与目标岗位最相关的几项,以增强面试官对你专业能力和适应性的认可。 ... [详细]
  • 深入解析 Vue 中的 Axios 请求库
    本文深入探讨了 Vue 中的 Axios 请求库,详细解析了其核心功能与使用方法。Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js 环境。文章首先介绍了 Axios 的基本概念,随后通过具体示例展示了如何在 Vue 项目中集成和使用 Axios 进行数据请求。无论你是初学者还是有经验的开发者,本文都能为你解决 Vue.js 相关问题提供有价值的参考。 ... [详细]
  • 通过菜单项触发Activity启动过程详解
    本文详细解析了通过菜单项触发Activity启动的过程。在Android开发中,菜单项是用户与应用交互的重要途径之一。文章从技术角度深入探讨了如何通过菜单项触发特定Activity的启动,并提供了具体的代码示例和实现步骤。通过对菜单项的响应处理、Intent的创建与传递等关键环节的分析,帮助开发者更好地理解和掌握这一机制。 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 初探设计模式之代理模式:原理与应用解析
    在设计模式中,代理模式通过一个代理对象来控制对真实对象的访问。UML图展示了代理类(如MathProxy)维护了一个引用,使得代理能够访问实际的主题对象。代理模式不仅能够延迟初始化昂贵的对象,还能在访问前后添加额外的操作,如权限检查或日志记录。这种模式在远程服务调用、虚拟代理和智能引用等方面有广泛应用。 ... [详细]
  • 在C#中开发多线程应用程序变得高效且简便,与之前使用VB时的复杂性和局限性形成鲜明对比。C#不仅提供了丰富的多线程编程模型,还简化了线程管理、同步和通信等关键任务,使得开发者能够更加轻松地构建高性能的应用程序。此外,C#的异步编程特性进一步增强了多线程应用的开发效率和可维护性。 ... [详细]
  • 深入解析 ELF 文件格式与静态链接技术
    本文详细探讨了ELF文件格式及其在静态链接过程中的应用。在C/C++代码转化为可执行文件的过程中,需经过预处理、编译、汇编和链接等关键步骤。最终生成的可执行文件不仅包含系统可识别的机器码,还遵循了严格的文件结构规范,以确保其在操作系统中的正确加载和执行。 ... [详细]
  • 池子比率:BSV 区块链上的去中心化金融应用——Uniswap 分析
    池子比率:BSV 区块链上的去中心化金融应用——Uniswap 分析 ... [详细]
  • 在Unity中进行3D建模的全面指南,详细介绍了市场上三种主要的3D建模工具:Blender 3D、Maya和3ds Max。每种工具的特点、优势及其在Unity开发中的应用将被深入探讨,帮助开发者选择最适合自己的建模软件。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
author-avatar
王者荣耀戒毒所
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有