vscode 创建QT最简工程

news2024/11/15 11:56:40

1. 前提条件

  • qt 安装
  • cmake安装
    参考: https://blog.csdn.net/qq_51355375/article/details/139890889
  • vscode 环境配置
    参考: https://blog.csdn.net/qq_51355375/article/details/140733495

2. 工程创建

  • include 放头文件
  • src .cpp 文件
  • CMakeList.tex cmake配置文件
    工程结构按需修改或创建, 修改cmake配置就行
    在这里插入图片描述

cmake配置:

cmake_minimum_required(VERSION 3.5)

project(app VERSION 0.1 LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES QT6 QT5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) 

include_directories(${PROJECT_SOURCE_DIR}/include)

file(GLOB_RECURSE SRC_CPP_FILES src/*.cpp)  
file(GLOB_RECURSE SRC_HEADER_FILES include/*.h) 
set(PROJECT_SOURCES ${SRC_CPP_FILES} ${SRC_HEADER_FILES}) 
message(STATUS "src:${PROJECT_SOURCES}")

if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_executable(app
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
    )
# Define target properties for Android with Qt 6 as:
#    set_property(TARGET qt_cmake_template APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
#                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
else()
    if(ANDROID)
        add_library(app SHARED
            ${PROJECT_SOURCES}
        )
# Define properties for Android with Qt 5 after find_package() calls as:
#    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
    else()
        add_executable(app
            ${PROJECT_SOURCES}
        )
    endif()
endif()

target_link_libraries(app PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)

set_target_properties(app PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

install(TARGETS app
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

if(QT_VERSION_MAJOR EQUAL 6)
    qt_finalize_executable(app)
endif()

可以下载查看: https://download.csdn.net/download/qq_51355375/89590533

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956805.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物品租赁小程序论文(设计)开题报告

一、课题的背景和意义 近些年来,随着移动互联网巅峰时期的来临,互联网产业逐渐趋于“小、轻、微”的方向发展,符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中,被誉为“运行着程序的网站”之名的微信小程序…

搭建开发环境

1、安装VMware 参考01【正点原子】ATK-DLRK3568嵌入式Linux系统开发手册V1.2 2、安装ubuntu 参考01【正点原子】ATK-DLRK3568嵌入式Linux系统开发手册V1.2 2.1、Ubuntu 系统设置 root 用户密码 新安装的ubuntu没有设置 root 用户密码,打开终端,输入 sudo passwd root 执…

C#使用NModbus4库创建Modbus TCP Slave(服务器)简单示例

本文续上篇Codesys—标准库ModbusTCP Master(客户端)配合C#的NModbus4库的通讯示例 链接:https://blog.csdn.net/wushangwei2019/article/details/136375234?spm1001.2014.3001.5501 上篇描述在Codesys端的Modbus TCP Master(客户端)的设备添加、IO映射、通讯简单…

机器视觉12-相机

相机 作用: 工业相机 是 机器视觉系统 的重要组成部分 最本质的功能就是通过CCD或CMOS成 像传感器将镜头产生的光信号转变为 有序的电信号,并将这些信息通过相 应接口传送到计算机主机 工业相机分类 目前业内没有对相机进行明确的分类定义, 以下分类是…

svn软件总成全内容

SVN软件总成 概述:本文为经验型文档 目录 D:\安装包\svn软件总成 的目录D:\安装包\svn软件总成\svn-base添加 的目录D:\安装包\svn软件总成\tools 的目录D:\安装包\svn软件总成\tools\sqlite-tools-win32-x86-3360000 的目录D:\安装包\svn软件总成\安装包-----bt lo…

一分钟搞定文件翻译|2024年4款翻译工具,职场达人都在用!

在全球化的大环境下,跨国沟通和协作变得非常普遍。不管是在公司间谈生意,还是跟外国朋友聊天,翻译文件成了我们经常要做的事情。但是一大堆文件和各种各样的语言,怎么才能又快又好地翻译出来,提升工作速度呢&#xff1…

本地部署Whisper Web结合内网穿透实现远程访问本地语音转文本模型

本地部署Whisper Web结合内网穿透实现远程访问本地语音转文本模型 🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者&…

分享10个免费的职场办公常用工具网站

在现代职场中,高效办公工具网站的使用可以显著提升工作效率。小编今天就和大家分享10个免费实用且高质量的职场办公常用工具网站。 1.Convertio Convertio是一个万能文件转换工具,支持多种格式之间的转换,包括PDF、Excel、Word等。它操作简…

C#与欧姆龙PLC 通信——fins udp协议

前言 欧姆龙PLC在工控领域占有很大的市场份额,在上位机编程领域,实现上位机和欧姆龙PLC的通信也是必备的技能,上位机和PLC可以通过fins udp和fins tcp协议通信,本文介绍的是fins udp协议,该协议具有传输速度快的特点,为了帮助大家学习fins udp协议,我编写了“欧姆龙Fin…

【从0制作自己的ros导航小车:上、下位机通信篇】上、下位机串口DMA通信

从0制作自己的ros导航小车 前言一、准备工作二、下位机端(STM32)三、上位机端(旭日x3派)四、测试 前言 下位机的电机驱动、轮速读取、偏航角读取都已经完成,接下来就是上下位机的桥梁:串口通信。 使用USB转…

Mysql in 与 exists

在MySQL中,IN和EXISTS都是用于子查询的条件语句,但它们在性能和使用场景上有不同的特点和应用。下面是对它们的详细介绍以及示例说明:

springboot中小型酒店管理系统-计算机毕业设计源码02793

摘要 随着互联网和移动技术的快速发展,酒店行业也面临着巨大的变革和机遇。传统的酒店管理方式存在着信息不透明、预订流程繁琐等问题,无法满足现代消费者对便捷、高效、个性化服务的需求。因此,开发中小型酒店管理系统具有重要的意义。本文旨…

9000字干货:从消息流平台Serverless之路,看Serverless标准演进

本文分享自华为云社区《9000字干货:从消息流平台Serverless之路,看Serverless标准演进》 这是一个最美好的时代。 随着以数字化升级为代表的第四次工业革命浪潮的席卷,企业正在不断地深化运用这一技术,构建一个又一个全连接&…

module AttributeError: ‘matplotlib.cm has no attribute ‘register_cmap‘

使用seaborn或者matplotlib报错: module AttributeError: matplotlib.cm has no attribute register_cmap‘ 这个一般是matplotlib版本变化导致 register_cmap‘函数名称发生了改变,升高或者降低matplotlib版本版本即可。 实验后matplotlib 3.7.3 中不…

【漏洞复现】泛微E-Cology9 WorkPlanService 前台SQL注入

文章目录 0x00 漏洞描述影响范围 0x01 测绘工具0x02 漏洞复现0x03 Nuclei检测脚本0x04 修复建议0x05 免责声明 0x00 漏洞描述 泛微E-Cology9 是泛微网络科技股份有限公司开发的一款高效、灵活、全面的企业信息化办公系统。 泛微E-Cology9 中的 /services/WorkPlanService 接口…

docker一些常用的命令

查看当前正在运行的容器&#xff0c;使用docker ps命令&#xff0c;使用这个命令可以展示出容器列表&#xff0c;记住其中需要的容器id。 docker ps 使用docker exec命令进入容器。该命令的基本语法是&#xff1a;docker exec [选项] <容器名称或ID> <要执行的命令&…

Flink笔记整理(四)

Flink笔记整理&#xff08;四&#xff09; 文章目录 Flink笔记整理&#xff08;四&#xff09;六、Flink中的时间和窗口6.1 窗口&#xff08;Window&#xff09;窗口的概念窗口的分类窗口API概览窗口分配器窗口函数&#xff08;Window Functions&#xff09; 6.2 时间语义&…

LLama3 405B 技术解读

LLaMA 3 大模型效果提升的三要素 扩大模型和数据规模&#xff1a;通过Scaling Law增加模型参数数量和训练数据规模&#xff0c;以捕捉更复杂的模式。数据质量的重要性&#xff1a;确保高质量数据&#xff0c;通过筛选方法提升模型性能。理性能力数据的增加&#xff1a;在预训练…

Leetcode - 135双周赛

目录 一&#xff0c;3222. 求出硬币游戏的赢家 二&#xff0c;3223. 操作后字符串的最短长度 三&#xff0c;3224. 使差值相等的最少数组改动次数 四&#xff0c;3225. 网格图操作后的最大分数 一&#xff0c;3222. 求出硬币游戏的赢家 本题就是一道模拟题&#xff0c;每个…

vue自写组件可输入,可下拉选择,因为el-autocomplete数据多了会卡

<!-- 引入组件 --><AutoCompletev-model"scope.row.strreceivername":lngemployeeid"scope.row.lngreceiverid"select"handleSelect($event,scope.row)"/> methods:{handleSelect(item, row) {row.lngreceiverid item.lngemployeei…