(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的解释

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

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

相关文章

GIS结合物联网:塑造智慧地球的新篇章

在信息技术飞速发展的今天,地理信息系统(GIS)与物联网(IoT)的深度融合,正以前所未有的方式重塑着我们对世界的认知。本文将深入探讨GIS与物联网结合的原理、应用实践以及面临的挑战与未来展望,共…

乡村振兴与乡村旅游品牌化:打造具有地方特色的乡村旅游品牌,提升乡村旅游吸引力,促进美丽乡村建设

目录 一、引言 二、乡村旅游品牌化的重要性 (一)增强乡村旅游的辨识度 (二)提升乡村旅游的附加值 (三)促进乡村文化的传承与创新 三、打造具有地方特色的乡村旅游品牌 (一)明…

Linux实验报告(二)——Linux系统中的常用命令

目录 一、实验名称: 二、仪器、设备: 三、参考资料: 四、实验目的: 五、实验内容(步骤): 六、实验数据(程序)记录: ​编辑 ​编辑 七、实验结果分析…

公司网站模板制作

公司网站模板的制作是一项极其重要的工作,因为网站模板决定了网站的整体风格和用户体验。一个漂亮、易用的网站模板将会吸引更多的用户,而一个糟糕的网站模板则会让用户不供选择。下面就让我们介绍一下公司网站模板的制作。 首先,一个好的网站…

前端 CSS 经典:mac docker 效果

前言:浏览器上实现 mac docker 效果,实现思路,1. 布局,方框间距用元素代替,因为有放大缩小功能,不用元素的话,不好控制。2. 定义个 css 变量 i,用来代表放大比例。3. 确定每个元素的…

信息系统项目管理师软考高级论文教程必过论文分享

很多人提到软考就会想到信息系统项目管理师和系统集成项目管理工程师,这两个不同的软考内容的区别不仅仅在于一个是高级,一个是中级,还有一个区别是它们的考试内容也是不同的,高级的信息系统项目管理师考试多了一项论文的考试&…

USART串口数据包

USART串口数据包 先来看两张图,本次程序是串口收发HEX数据包,第二种是串口收发文本数据包,之后两个图,展示的就是接收数据包的思路。 在PB1这里接了一个按键,用于控制。在串口助手,在发送模式和接收模式都…

SpringSecurity6从入门到实战之整合原生Filter链

SpringSecurity6从入门到实战之整合原生Filter链 DelegatingFilterProxy 从官网上来进行学习可以看到第一个类就是DelegatingFilterProxy,我们首先看看官网给下的定义. Spring提供了一个名为DelegatingFilterProxy的过滤器实现,它允许在Servlet容器的生命周期和Spr…

Raid的全局热备和独立热备

目录 Hot Spare背景: 1.定义与功能 2.数据存储与容量 3.配置模式 4.数量限制: 5.数据重建: 6.管理与维护 实操全局热备和独立热备: 配置全局热备: 配置独立热备: Hot Spare背景: 在RAID配置中,Hot Spare(热备)是一个非常重要的概念…

发现一个ai工具网站

网址 https://17yongai.com/ 大概看了下,这个网站收集的数据还挺有用的,有很多实用的ai教程。 懂ai工具的可以在这上面找找灵感。

善听提醒遵循易经原则。世界大同只此一路。

如果说前路是一个大深坑,那必然是你之前做的事情做的不太好,当坏的时候,坏的结果来的时候,是因为你之前的行为,你也就不会再纠结了,会如何走出这个困境,是好的来了,不骄不躁&#xf…

事先预判事的结果事先预防从容应对防微杜渐

很多人呢,学习倪老师的知识,也都是从他的中医方面,认识了他很多的东西呢,对于倪老师的知识性的总结的东西呢,不是很了解。 其实啊,倪老师也是一个,对于这种文化的传承,有着很大很深刻…

YOLOv10涨点改进:卷积魔改 | 分布移位卷积(DSConv),提高卷积层的内存效率和速度

💡💡💡本文改进内容: YOLOv10如何魔改卷积进一步提升检测精度?提出了一种卷积的变体,称为DSConv(分布偏移卷积),其可以容易地替换进标准神经网络体系结构并且实现较低的存储器使用和较高的计算速度。 DSConv将传统的卷积内核分解为两个组件:可变量化内核(VQK)和…

C# yolov8 TensorRT +ByteTrack Demo

C# yolov8 TensorRT ByteTrack Demo 目录 效果 说明 项目 代码 Form2.cs YoloV8.cs ByteTracker.cs 下载 参考 效果 说明 环境 NVIDIA GeForce RTX 4060 Laptop GPU cuda12.1cudnn 8.8.1TensorRT-8.6.1.6 版本和我不一致的需要重新编译TensorRtExtern.dll&…

微调医疗大模型,与通用大模型效果对比

下面是一份CT描述: “肝脏大小、形态未见明确异常。肝S2见一结节状低密度影,大小约13x11mm,增强扫描呈明显渐进性强化,延迟期呈等密度。余肝实质内未见异常密度影或强化灶。肝内大血管及其分支走行未见异常,肝门区层次…

ip地址告诉别人安全吗?ip地址告诉别人会有什么风险

IP地址告诉别人安全吗?在数字化时代,IP地址作为网络连接的关键标识符,承载着重要的安全意义。然而,很多人可能并不清楚,轻易地将自己的IP地址告诉他人可能带来一系列安全风险。那么,IP地址告诉别人会有什么…

文件夹损坏0字节:全面解析、恢复技巧与预防策略

在数字时代,数据的完整性和安全性至关重要。然而,我们时常会遭遇文件夹损坏并显示为0字节的棘手问题。这种情况一旦发生,用户可能会面临数据丢失的风险。本文将详细探讨文件夹损坏0字节的现象,分析其背后的原因,并提供…

Redis-重定向

实验环境(3主3从的Redis-Cluster) 一、Redis重定向基础篇 1、MOVED重定向 Redis Custer 中,客户端可以向集群中任意节点发送请求。此时当前节点先对 Key 进行 CRC 16 计算,然后按 16384 取模确定 Slot 槽。确定该 Slot 槽所对应的…

为什么使用短链系统?

短链接(Short Link)是指将一个原始的长 URL(Uniform Resource Locator)通过特定的算法或服务转化为一个更短、易于记忆的 URL。短链接通常只包含几个字符,而原始的长 URL 可能会非常长。 短链接的原理非常简单&#x…

【Java数据结构】详解LinkedList与链表(二)

目录 1.❤️❤️前言~🥳🎉🎉🎉 2.反转一个单链表 3. 找到链表的中间节点 4.输入一个链表,输出该链表中倒数第k个结点。 5.合并两个有序链表 6.链表分割 7. 判定链表的回文结构 8.输入两个链表,找…