Qt 开发使用VSCode 笔记2

news2024/12/29 10:42:11

在之前有写过使用VSCode开发QT的笔记
Qt 开发使用VSCode
在以前的基础上继续学习记录写下《Qt 开发使用VSCode 笔记2》

该笔记相比之前的Qt 开发使用VSCode新加了如下内容:

  • 工作区的使用
  • 使用Natvis进行Qt感知对象可视化
  • 通过vscode创建QT Quick项目

工作区的使用

  • 文件 - 打开文件 - 新建一个项目文件夹并选择打开
  • 文件 - 将工作区另存为… 命名工作区文件qt.code-workspace选择目录保存
  • 文件 - 将文件夹添加到工作区
  • 文件 - 关闭工作区
  • 文件 - 从文件打开工作区

为什么使用工作区?参考:https://zhuanlan.zhihu.com/p/54770077
在不使用工作区时将针对指定语言项目开发的插件都禁用了,再打开工作区的时候再对插件启用(工作区)
给不同的工作区启用不同插件,避免启用太多的插件使得VSCode变得臃肿,用工作区方便管理多个项目。

vscode插件管理,在非工作区状态下载所有用到的插件全部禁用(开启一些通用的插件),其他插件在指定工作区中再开启。

比如qt项目建一个工作区,将多个项目加入到qt工作区,这个工作区启用了qt开发所需的插件。其他语言的项目建对应工作区,为对应语言项目工作区启用了所需的插件。达到避免VSCode臃肿,方便多项目管理的目的。

Qt开发插件

  • C/C++
  • C/C++ Extension Pack
  • CMake
  • CMake Tools
  • Qt Configure
  • Qt tools
  • QML

新建Qt项目

在之前的笔记Qt 开发使用VSCode有过记录。
自行安装Qt(我使用5.15.2)
步骤:

  • 配置Qt安装目录 >QtConfigure:Set Qt Dir
  • 创建Qt项目 >QtConfigure:New Project 新建项目名称、选择编译套件(mingw、msvc),选择构建工具(qmake、cmake),是否带ui文件

选择cmake构建工具需要确保cmake环境变量已经配置 D:\Qt\Tools\CMake_64\bin
使用QtConfigure插件创建的qt项目是基于QWidget的
通过QtConfigure插件创建qt项目时会自动生成初始化状态的launch.json启动文件,使用cmake构建工具时会自动生成初始化状态的cmake构建文件CMakeLists.txt

注意:如果想在工作区中使用QtConfigure创建新项目到新的文件夹时需要把要创建的新项目的文件夹拖到第一位,因为使用QtConfigure只会在工作区的第一位文件夹里生成项目初始代码。也可以直接修改工作区配置文件调整folders中path的顺序,哪个path在最前工作区的文件夹就在第一位。

创建项目前工作区配置文件
在这里插入图片描述
创建项目后qt编译套件配置到了工作区文件中,如果不使用工作区该配置会写到.vscode文件夹settings.json中
在这里插入图片描述
launch.json 自动配置
在这里插入图片描述

使用了cmake构建工具会自动生成CMakeLists.txt配置文件,用于使用cmake构建工具编译调试。
在这里插入图片描述
到这里一个初始状态的qt项目就创建好了
如何添加ui文件、资源文件、添加子目录等问题在之前的笔记Qt 开发使用VSCode有过记录。

编译和调试

在之前的笔记Qt 开发使用VSCode有过记录。

使用cmake进行编译和调试

可以不使用launch.json配置文件,但需要配置好环境变量
D:\Qt\5.15.2\mingw81_64\bin
D:\Qt\5.15.2\msvc2019_64\bin

命令 > CMake:select a kit(如果无选项可以使用Qt:Scan for Qt kit搜索,或重启vscode再搜索再选择)
每次重新编译前重新cmake select a kit 再F7,好像也不需要重新cmake select a kit!
CMake指令:F7编译、Ctrl + F5调试

使用launch.json配置文件进行调试

就不需要手动配置环境变量了,环境变量都配置在launch.json配置文件中
直接使用vscode F5启动调试

使用Natvis进行Qt感知对象可视化

Natvis文件:https://github.com/aambrosano/qt-natvis

修改launch.json配置
使用msvc
在这里插入图片描述
使用mingw需要设置"showDisplayString":true
在这里插入图片描述
所以直接使用cmake进行调试(Ctrl+F5)是不会有Qt感知对象可视化的
在这里插入图片描述
F5使用启动文件launch.json启动调试运行,因为配置了visualizerFile才会有Qt感知对象可视化
在这里插入图片描述
在这里插入图片描述

通过vscode创建QT Quick项目

通过QT Creator 创建QT Quick项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从初始状态的QT Quick项目可以看出.pro管理工程的文件、main.cpp是入口文件、main.qml就是ui文件了。
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的
Qt Creator中的.pro文件的详解参考

如何使用vscode+cmake开发QT Quick项目?
在之前的笔记Qt 开发使用VSCode的基础上知道使用cmake构建工具使用的CMakeLists.txt makefile文件代替了qmake构建工具使用的xxx.pro makefile文件。
CMake官方文档

从通过QT Creator 创建QT Quick项目入口文件main.cpp下面这行代码
const QUrl url(QStringLiteral(“qrc:/main.qml”));
可以看出qml也是资源文件,在之前的笔记Qt 开发使用VSCode中有写到资源文件的使用,所以就知道如何在vscode中使用qml了。

通过vscode创建QT Quick项目
在vscode + Qt Configure + cmake + msvc 创建的QT QWidget项目基础上进行改造

创建qml文件
在这里插入图片描述
创建qrc文件
在这里插入图片描述
修改makefile文件,关键配置看标记
在这里插入图片描述
项目入口文件改一改,对QT Quick不熟悉的话直接从通过QT Creator 创建QT Quick项目的入口文件复制过来。
在这里插入图片描述

F7使用cmake编译成功
在这里插入图片描述
F5使用启动文件launch.json启动调试运行
在这里插入图片描述

预览QML

qmlscene是Qt 5提供的一个查看qml文件效果的工具。特点是不需要编译应用程序。
在安装Qt 5的时候会自动安装,qmlscene.exe位于Qt的安装目录下的编译套件(msvc或mingw)bin目录下
在这里插入图片描述
配置了环境变量即可在vscode直接使用
在这里插入图片描述
关闭窗口退出预览,或直接使用Ctrl+C退出预览命令
修改再预览
在这里插入图片描述
QML 在线预览工具
QML预览插件 QML Syntax/Tools,好像要基于Felgo框架开发的QML文件才能预览。
目前还没有找到好用的QML预览工具,欢迎评论留言!

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

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

相关文章

jsp诊疗预约系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp诊疗预约系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用jav…

Java创建对象的方式

Java创建对象的五种方式: (1)使用new关键字 (2)使用Object类的clone方法 (3)使用Class类的newInstance方法 (4)使用Constructor类中的newInstance方法 (5&am…

[MySQL]初识数据库

哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库,也是新的知识,首先我们会初步认识什么是数据库,什么是Mysql 数据库,以及我们 mysql 主要学什么,SQL 语句简单使用&…

如何使用Python创建一个自定义视频播放器

目录 1、安装vlc的64位版本。 2、安装python的vlc模块。 3、编写如下代码,包含了播放,暂停,停止、音量控制功能。 4、来看一看运行结果。 5、如果遇到播放不了的问题,解决方式如下: 这个例子使用VLC作为视频播放器…

【C#个人错题笔记1】

观前提醒 记录一些我不会或者少见的内容,不一定适合所有人 字符串拼接 int a3,b8; Console.WriteLine(ab);//11 Console.WriteLine("ab");//ab Console.WriteLine(a""b);//38 Console.WriteLine("ab"ab);//ab38 Console.WriteLine…

基于Hadoop搭建Flink集群详细步骤

目录 1.xftp上传flink压缩包至hadoop102的/opt/software/目录下 2.解压flink压缩包至/opt/module/目录下 3. 配置flink-conf.yaml 4.配置masters 5.配置workers 6.配置环境变量my_env.sh 7.重启环境变量 8.分发/opt/module/flink-1.13.0和/etc/profile.d/my_env.sh 9.…

三、NetworkX工具包实战1——创建图、节点和连接【CS224W】(Datawhale组队学习)

开源内容:https://github.com/TommyZihao/zihao_course/tree/main/CS224W 子豪兄B 站视频:https://space.bilibili.com/1900783/channel/collectiondetail?sid915098 斯坦福官方课程主页:https://web.stanford.edu/class/cs224w NetworkX…

RFID射频识别技术(四) RFID高频电路基础|课堂笔记|10月11日

2022年10月11日 week7 ​​​​​​​ 目录 ​​​​​​​ 第四讲: RFID高频电路基础 一、RLC(串联)电路的阻抗

人工智能时代- 是时候改变学习方法了!

一、背景 现在 ChatGPT 非常火爆,很多问题能够给出非常专业的回答,对我们的学习有一些帮助。 今天突发奇想,问问 ChatGPT 一个问题:“Java 程序员如何做到让自己的代码更具有拓展性?” 下面将贴出 ChatGPT 相关的人…

上市公司企业持续创新能力、创新可持续性(原始数据+计算代码+计算结果)(2008-2021年)

数据来源:自主计算 时间跨度:2008-2021年 区域范围:沪深A股上市公司 指标说明: 参考何郁冰(2017)[1]的做法,将持续创新作为独立研究变量,同时采用创新投入指标(研发经费) 和创新…

【AHK】打开网络连接/打开wifi列表/打开蓝牙列表

需求:打开wifi列表检查自动连接的wifi,打开蓝牙列表查看蓝牙设备电量,并通过快捷键激活,能像wink那样打开连接列表。 同时也是一种思路,就是一般是输入 Windows打开xx的快捷键,一般是找不到的,那…

Apache Flink 实时计算在美的多业务场景下的应用与实践

摘要:本文整理自美的集团实时数据负责人、资深数据架构师董奇,在 Flink Forward Asia 2022 主会场的分享。本篇内容主要分为四个部分:实时生态系统在美的的发展和建设现状核心传统业务场景 Flink 实时数字化转型实践新兴业务场景 Flink 实时数…

Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器及使用教程

目录 一、概述 二、在Ubuntu搭建nfs服务器  👉2.1 安装nfs服务器  👉2.2 创建nfs服务器共享目录  👉2.3 修改nfs服务器配置文件  👉2.4 重启nfs服务器 三、客户端访问nfs服务器共享目录  🎈3.1 在nfs客户端挂载服…

Tile防丢器引入全新防盗模式,苹果Find My功能拓展到大众消费电子

Tile 宣布引入全新的防盗模式,Tile 配件启用之后,反跟踪扫描和安全功能就无法检测到该配件。Tile 为了遏制其物品追踪产品用于追踪某人,此前推出了 Scan and Secure 功能。iPhone 和安卓用户可以通过该功能扫描附近的 Tile 设备,以…

【C++之容器篇】map和set常见函数接口的使用与剖析

目录前言一、set1. 简介2. 成员类型3. 构造函数(1) set()(2)set(InputIterator first,InputIterator last)(3)使用4. 拷贝构造函数和赋值运算符重载5. empty()6. size()7. insert()(1)pair<iterator,bool> insert(const K& key)(2)iterator insert(iterator pos,cons…

零信任-Cisco思科零信任介绍(10)

​目录 ​思科零信任介绍 思科零信任所涉及产品 思科零信任架构拓扑介绍 ​思科零信任框架VS零信任安全框架 思科零信任架构的应用场景 思科零信任解决方案的优势 思科零信任的未来发展展望 思科零信任介绍 Cisco Zero Trust是思科公司推广的一种安全模型&#xff0c;旨…

实现qq群消息接收和发送功能

QQWebsocketClient是什么 实现qq群消息接收和发送功能&#xff0c;基于websocket技术和cqhttp服务开发 一、 效果截图 二、实现思路 使用cqhttp进行socket反向代理&#xff0c;获取qq聊天的所有消息 编写java客户端&#xff0c;连接至cqhttp服务器获取聊天消息 获取聊天消…

spring boot 自动配置类,详细过程

springboot version(v2.7.8)启动类SpringBootApplication public class SecurityApplication { public static void main(String[] args) {SpringApplication.run(SecurityApplication.class, args);} }1 点击 SpringBootApplication进入&#xff0c;EnableAutoConfiguration 开…

把Typora图片自动上传网

闲话少说 总共三步下载PicGohttps://github.com/Molunerfinn/PicGo/releases/download/v2.3.1/PicGo-Setup-2.3.1-x64.exe直接点就行这里略过Gitee我们需要使用 Git 来保存我们的图片&#xff0c;又因为国内访问 Github 速度比较慢&#xff0c;所以这里推荐使用国内的 Git 托管…

Blazor入门100天 : 身份验证和授权 (1) - 建立带身份验证工程

目录 建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 > 导航属性完善 freesql 和 bb 特性 知识点 Microsoft.AspNetCore.…