(2) qml诞生的原因 和Qt Creator开发环境的介绍

文章目录

  • qml诞生原因
    • Qt Quick应⽤程序
    • Qt Creator环境
        • 1、MSVC
        • 2、MinGW
        • MSVC的优缺点
        • MinGW的优缺点
      • 最后的选择
      • 延伸阅读
    • 一些常用的快捷键
    • 统一格式化代码
    • 统一qml 语言的格式
    • Locator 定位器
    • 帮助

qml诞生原因

可以在Qt5中开发的不同类型的经典应⽤程序。桌⾯应⽤程
序正在发⽣着改变,不久之后移动设备将会为占据我们的世界。移动设备的
⽤户界⾯设计⾮常不同。它们相对于桌⾯应⽤程序更加简洁,只需要专注的
做⼀件事情。动画效果是⼀个⾮常重要的部分,⽤户界⾯需要⽣动活泼。传
统的Qt技术已经不适于这些市场了。
由此qml诞生

Qt Quick应⽤程序

在现代的软件开发中有⼀个内在的冲突,⽤户界⾯的改变速度远远⾼于我们
的后端服务。在传统的技术中我们开发的前端需要与后端保持相同的步调。
当⼀个项目在开发时⽤户想要改变⽤户界⾯,或者在⼀个项目中开发⼀个⽤
户界⾯的想法就会引发这个冲突。敏捷项项目需要敏捷的⽅法。
Qt Quick 提供了⼀个类似HTML声明语⾔的环境应⽤程序作为你的⽤户界⾯
前端(the front-end),在你的后端使⽤本地的c++代码。这样允许你在两端
都游刃有余

Qt Creator环境

需要先到环境里面去构建套件kit
在这里插入图片描述
链接到我们下载qt的目录 会自动识别该目录下面的编译套件 常用的有mingw和 msvc
配置相关的套件
在这里插入图片描述

1、MSVC

即Microsoft Visual C++ Compiler,即微软自己的编译器。

我们下载Windows下的OpenCV时,解压后里面有两个文件夹,一个是build,一个是source,build这个文件夹实际上是官方已经提前给我们编译好了的库,会带两个文件夹VC14,VC15(分别与Visual Studio的版本有对应关系),这两个文件夹下的库可以直接运行不需要编译将VS作为Qt的开发环境也是使用这个编译器的缘故,但是,使用的必须是msvc编译器,不能够跨平台。

2、MinGW

我们都知道GNU在Linux下面鼎鼎大名的gcc/g++,MinGW则是指Minimalist GNU for Windows的缩写它是将GNU开发工具移植到Win32平台下的产物,即一套Windows上的GNU工具集。
用其开发的程序不需要额外的第三方DLL支持就可以在Windows下运行,相对地,不使用动态库导致的就是编译出来的程序大很多。也是可以设置使用静态库的,mingw编译器需要自己手动编译source文件生成库文件,mingw这个编译器能够跨平台,能够在linux、arm等平台使用,这些平台使用的编译器都是g++、gcc。

MSVC的优缺点

优点:

qtcreator的debuger有功能缺陷,经常会出现变量无法查看的问题,棘手的bug还是需要在VS环境下进行调试。很多人的开发模式就是qtcreator写代码,VS下面做调试。

缺点:

不能跨平台

编码的问题,QT5的Qstring默认是UTF8格式,QT5极力推介把源码用UTF8格式存储。 但是MSVC只支持带BOM的UTF8格式,qmake不支持带BOM的UTF8格式,逼我只能用GBK么。这样的话,用qt5,每次都要Qstring::fromLocal8bit(“我是中国人”);况且就算BOM问题解决了,源代码是UTF8了。MSVC的执行编码也是GBK

MinGW的优缺点

优点:

能跨平台

缺点:

MinGW无法利用生成的dump文件在windbg或VS下面定位到出错的代码

Scene3D在MinGW64位Release和MinGW32位Debug模式下运行直接闪退,而64位Debug和32位Release却正常运行。

动态删除继承QuickItem的对象,有几率导致非法内存访问,可以定位到问题在Qt源码中Renderer中的一处

最后的选择

到底选择哪个版本,MinGW 比较方便,配置易上手适合初学者,MSVC功能强大,适合进阶,但是具体项目上要根据依赖的第三方库选择版本。

如果你的第三方库是msvc的,能可能就必须msvc,如果第三方库是mingw的可能就必须mingw。

跨平台开发的话,用的库基本上一定是Linux能用的库,而Linux能用的库一定是在mingw下支持会比较好。(mingw甚至能 include unistd.h 之类的Linux专用头文件),那就优选mingw。

来源:本文为CSDN博主「吻等离子」的原创文章
原文链接:https://blog.csdn.net/qq_43445867/article/details/127889570

延伸阅读

Qt中的各种编译器

1.uic:UI编译器,将.ui文件转化为ui_*.h文件

2.rcc:资源编译器,将.qrc文件转换成qrc_*.h文件

3.moc:元对象编译器,将含有Q_OBJECT的头文件转换成标准.h文件

4.qmake : 把pro文件编译成makefile文件,然后可以调用make命令

5.MSVC:微软VC++编译器

6.MinGW:gcc编译器

一些常用的快捷键

  • Ctrl+B - 构建项目
  • Ctrl+R - 运⾏项目
  • Ctrl+Tab - 切换已打开的⽂档
  • Ctrl+k - 打开定位器
  • Esc - 返回
  • F2 - 查找对应的符号解释。
  • F4 -在头⽂件与源⽂件之间切换(只对c++代码有效)
    在这里插入图片描述
    快捷键配置的位置如上

统一格式化代码

可能需要在此处进行统一的格式化处理代码
限制为MIME类型 :text/x-c++src; text/x-c++hdr; text/x-csrc; text/x-chdr; text/x-objcsrc; text/x-objc++src
没有clang format 需要去网上下载一个 然后指定路径即可
在这里插入图片描述

统一qml 语言的格式

在这里插入图片描述
creator 自带格式化 qml语言的格式化 可以在 qt quick 里面去把相关的 保存时自动格式化给带上

Locator 定位器

在这里插入图片描述
左边底部可以显⽰弹出⼀系列的选项。如果你只是想搜索你项目中的⼀个⽂
件,你只需要给出⽂件第⼀个字⺟提⽰就可以了。定位器也接收通配符,⽐
如*main.qml也可以查找。你也可以通过前缀搜索来搜索指定内容的类型

帮助

在这里插入图片描述
可以查找所有qt api的解释

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何制作不限扫描次数的视频二维码?1分钟教程

不可否认的是,视频二维码正在各行各业发挥重要作用。不论是在线上宣传、线下活动,还是产品包装、展览展会上,只需要扫描视频二维码,就能在手机端获得专业的视频教程、查看品牌宣传视频、了解活动流程、快速获取关键信息等&#xf…

AI精选付费资料包【37GB】

课程介绍 一、人工智能论文合集 二、AI必读经典书籍 三、超详细人工智能学习大纲 四、机器学习基础算法教程 五、深度学习神经网络基础教程 六、计算机视觉实战项目 课程获取 资料:AI精选付费资料包(37.4GB)获取:扫码关注公z号…

msconfig修改引导导致电脑无法进入系统 和 启动蓝屏问题

目录 解决方法遇到的问题开机蓝屏进入【指定UFEI固件设置】进入bios启动系统选择界面(忘了拍照) 解决方法 找到一个移动U盘(最好大于10G)格式化;找一个好的电脑安装WEPE软件(wepe安装链接)&…

[leetcode hot150]第五十七题,插入区间

题目: 给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示…

解决odbc 数据源创建之后删除失败问题

问题描述 该问题一般存在于用32位odbc管理程序删除了64位管理程序创建的数据源,被提示失败,然后再用64位odbc管理程序删除时发现删除不掉。怎么都删除不掉,不会影响体验,但是很膈应 问题解决 将该路径下的对应的ODBC数据源&…

判断JavaScript对象是否为空,最佳方法与性能对比

引言:在日常开发中,你是否经常需要判断一个对象是否为空?你知道有哪些高效的方法可以做到这一点吗?今天,我们不仅要探讨这些方法,还要通过性能对比找出最优解。快来看看,你平常用的方法是最佳选…

Windows系统电脑本地部署AI音乐创作工具并实现无公网IP远程使用

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 本文主要介绍如何在Windows系统电脑上快速本地部署一个文字生成音乐的AI创作工具MusicGPT,并结合cpolar内网穿透工具实现随时随地远程访问使用。 MusicG…

【机器学习】——驱动智能制造的青春力量,优化生产、预见故障、提升质量

目录 一.优化生产流程 1.1 数据收集 1.2 数据预处理 1.3 模型训练 1.4 优化建议 1.5 示例代码 二.预测设备故障 2.1 数据收集 2.2 数据预处理 2.3 模型训练 2.4 故障预测 2.5 示例代码 三.提升产品质量 3.1 数据收集 3.2 数据预处理 3.3 模型训练 3.4 质量提升…

R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

使用 Django 实现定时任务

文章目录 Celery 简介步骤1. 安装 Celery2. 配置 Celery3. 创建 Celery 任务4. 启动 Celery Worker5. 调度定时任务6. 定时调度任务7. 启动 Celery Beat 在许多 Web 应用程序中,需要执行定期的任务,比如数据备份、邮件发送或者清理任务。Django 提供了多…

无线麦克风哪个品牌音质最好?多款热门电视k歌麦克风推荐

随着直播和自媒体的蓬勃发展,越来越多的人怀揣着梦想,投身到视频拍摄和直播的广阔天地中。在这个充满创意与激情的领域里,声音质量就像一幅画的色彩,为作品增添了生动与活力。无线麦克风,作为声音的捕捉者,…

如何利用AI大模型给我写程序

文章目录 1,应用情景(给文件夹里的图片批量重命名)2,选择合适的AI大模型3,复制AI给出来的代码,在本地执行4,结果检查 1,应用情景(给文件夹里的图片批量重命名&#xff09…

Vue2 若依常见问题

路由跳转并关闭当前tabs标签页 // 关闭当前tabs this.$store.dispatch("tagsView/delView", this.$route); // 跳转路由 this.$router.replace({ path: /test });// 返回 this.$router.go(-1); this.$router.push({path: path, query: param}); // 跳转 this.$route…

Python实用代码片段分享(三)

在今天的博文中,我们将继续分享一些Python编程中非常实用的代码片段。这些代码片段将帮助你更高效地处理常见任务,从字符转换到数据类型检查,应有尽有。 1. ord函数和chr函数 Python的ord()函数可以返回Unicode字符对应的ASCII码值&#xf…

sigmoid, softmax

∙ \bullet ∙ sigmoid函数 值域(0,1) 常用于二分类问题 ∙ \bullet ∙ softmax函数 每一项的区间范围的(0,1) 所有项相加的和为1. 常用于多分类问题 ∙ \bullet ∙ 区别: softmax 当类别数是2时,它退化为二项分布,而它和sigmoid真正的区别…

水库大坝安全监测系统建设方案

一、背景 随着自动化技术的进步,大部分水库大坝不同程度地实现了安全监测自动化。但仍存在以下问题: 1、重建轻管,重视安全监测系统建设,不够重视运行维护。 2、缺乏系统性、综合性及相关性的资料分析功能。 3、软件大多为数据…

Linux应用 sqlite3编程

1、概念 SQLite3是一个轻量级的、自包含的、基于文件的数据库管理系统,常用于移动设备、嵌入式设备和小型应用程序中,应用场景如下: 移动应用程序:由于SQLite3是零配置、无服务器的数据库引擎,非常适合用于移动应用程…

@vue-office/excel 解决移动端预览excel文件触发软键盘

先直接上代码 不耽误大家时间 标明下插件库 非常感谢作者提供预览插件 vue-office/excel 只需要控制CSS :deep(.x-spreadsheet-overlayer) {.x-spreadsheet-selectors {display: none !important;} } :deep(.x-spreadsheet-bottombar) {li.active {user-select: none !import…

PCIe Capability and Extended Capability

PCIe(Peripheral Component Interconnect Express)是一种用于连接扩展卡到计算机主板的高速串行总线标准。PCIe Capability 和 Extended Capability 是 PCIe 设备的两种重要特性。 1. **PCIe Capability:** PCIe Capability 是指 PCIe 设备的…

HR人才测评,如何做管理岗位的领导力测评?

管理岗位的领导力测评是企业HR人才测评中的重要内容之一,其目的是为了评估管理人员的领导能力和潜力,以便企业在选拔、培养和晋升管理人员时更加科学和有效。 1.明确测评目标和指标 领导力包含多个方面,如领导风格、组织管理、团队建设、决…