(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与物联网结合的原理、应用实践以及面临的挑战与未来展望,共…

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

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

Python知识点6---列表和元组

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python的列表和和元组定义方式如下,且注意列表和元组拥有…

【深度强化学习入门:结合直觉与算法的学习之旅】

文章目录 前言深度强化学习的关键要素简单的深度Q网络(DQN)实现分析代码结论 前言 深度强化学习结合了深度学习的表征学习能力和强化学习的决策制定机制,这使得机器能够在复杂环境中自我学习并做出合理的行动策略。它在游戏玩耍、自动驾驶、…

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

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

Python知识点9---推导式

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python提供的推导式,只对列表、字典、集合三种数据类型生…

公司网站模板制作

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

iCold编程入门:探索未知的编程世界

iCold编程入门:探索未知的编程世界 在浩瀚的数字宇宙中,iCold编程犹如一颗璀璨的新星,吸引着无数好奇而勇敢的探险家。然而,对于初学者来说,这个神秘的世界往往充满了未知与挑战。今天,我们就将一同踏入这…

前端 CSS 经典:mac docker 效果

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

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

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

K-means 聚类算法和K-means ++聚类算法详解【5】

1、通俗易懂的讲解链接 补充链接,K- means算法的K值选择策略:链接一,链接二​​​​​​​; 后续关键点渐次补充

MySQL入门学习-查询进阶.正则表达式

在 MySQL 中,正则表达式是用于匹配文本模式的工具。正则表达式可以用于在查询中进行模式匹配,以便更精确地查找和操作数据。 一、以下是一些常见的查询进阶操作和正则表达式的特点、使用方法以及与其他比较和高级应用的示例: 1. LIKE操作符…

USART串口数据包

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

Debian 常用命令指南:基础篇

Debian 是一款广泛使用的 Linux 发行版,以其稳定性和安全性著称。对于新手来说,掌握一些常用的命令行工具是顺利使用 Debian 的第一步。本篇文章将介绍一些 Debian 系统中最常用的基础命令,帮助你更好地管理和操作你的系统。 1. 系统信息相关…

JAVA拦截器的三种实现方式

JAVA拦截器的三种实现方式 一、java原生过滤器Filter二、springMVC拦截器三、aop切面实现拦截器 一、java原生过滤器Filter /*** 自定义Filter* 对请求的header 过滤token** 过滤器Filter可以拿到原始的HTTP请求和响应的信息,* 但是拿不到你真正处理请求方法的…

Java 基础面试300题 (141- 170 )

Java 基础面试300题 &#xff08;141- 170 &#xff09; 141. 编译运行以下代码时会发生什么&#xff1f; class Mammal {} class Cat extends Mammal { } List<Mammal> list new ArrayList<Cat>();上述代码将出现编译错误。这是因为为List指定了Mammal哺乳动物…

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

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

Raid的全局热备和独立热备

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

amis源码 Api接口调用解析:

Amis中传入用户自定义fetcher(基于fetcher做接口调用)&#xff1a; 1.embed渲染时可以传入用户定义的fetcher(接口调用)&#xff1a; import axios from "/libs/api.request"; //自定义的fetcher调用接口&#xff08;axios调用&#xff09; { fetcher: ()>{ ……