为什么我要学习qt quick

摘要:
2020年是一个没有明确目标的混乱之年。我自学了K8S,但我不能在工作中使用它,所以我没有其他办法。唯一的选择是继续将客户端开发为wpf开发。我注定要玩Windows,并希望将客户端开发进行到底。不幸的是,几乎可以肯定的是,wpf将不再考虑跨平台开发,因为与Windows硬件(图形卡)的绑定太严重了,尽管有xamarin(mai),但它并不温暖,而且它无法解决wpf uwp的性能问题

2020年,是迷茫的一年
没有很清楚的目标,自学了k8s,但是工作中并不会用得到
所以后知后觉,已经没有别的路可以走了,唯一的选择就是在客户端开发上继续前行

作为一个wpf开发,注定只能在windows上玩耍
想将客户端开发进行到底,可惜
几乎可以肯定wpf已经不会考虑跨平台了,因为和windows硬件(显卡)绑定太严重
虽然有个xamarin(maui),但是不温不火的,并且也没有解决wpf的性能问题
uwp性能是的挺高的,但也和win10绑定在一起了,仍然是个半死不活的框架
再者有winui3 ,unio跨平台, 这些看起来有潜力,但是现阶段都是学了找不到工作的
感觉有点孤立无援

所以只能把目光放到其他ui框架上了
这个时候我看到了 flutter和Qt
flutter是谷歌的跨平台方案,使用托管语言dart
社区强大,文档强大 ,入门相对来说比较简单,可以用于安卓 ios 跨平台,也能做h5,但是还不是很成熟,
qt是GPL开源 和LGPL商业授权的跨平台方案 如果你的软件是开源的,那么它就是免费的,如果你的软件不是开源的,那么你需要买
授权 ,否则你需要包一层开源的包装,这样就可以绕过LGPL的限制 当然对于一个盈利的公司来说,授权并不昂贵
qt社区强大,文档强大, 入门相对来说比较难一些,可以用于几乎全平台 andriod ios linux mac window的开发
qt又分 widget和qml (qt quick)
widget 是4.x时就成型了的,特别适合信息密度大的gui开发(桌面),也能开信息密度较发低的gui(移动 ),绘图用cpu,所以ui效果中规中矩
qml 是从5.0开始的, ui用qml(类似json+js的语言)编写 可以把qml对象关联到cPP, 布局用qml,业务逻辑用cpp
qml具有硬件加速,所以可以简单的做出比较炫的ui ,但是如果布局很复杂,可能会降低性能。
5. x版本主要就是做移动端的 qml
6. x版本主要做桌面端的qml
如果你要用qt开发桌面程序,目前你应该选择的是widget, 但如果是移动开发,你的应该选择qml
6.x已经发布了,但是效果如何尚不清楚,但是学了qml,可能将来可以在6.x中用qml快乐的开发桌面程序

我个人有强烈的学习qt的意愿:
1.因为wpf mvvm习惯了,所以个人比较倾向于qt qml的开发方式, flutter在我眼里就是很牛逼的反派份子
2.flutter目前的岗位没有qt多,
3.qt的天花板也比较高,可以有很多学习的乐趣,
4.无论是做什么客户端,开发技能高到某一程序,你总是会碰到cpp,所以cpp会的话,比再多会一种托管语言重要很多
5.我的cpp理论基础好(语法,std),但一直没有实践,可以快速的上手
6. qt 6.x成熟后, qt qml应该也可以用于开发高性能的跨平台桌面程序

以上是我看了部分qt qml的官方教程 和flutter官方的所有视频教程得出的结论

免责声明:文章转载自《为什么我要学习qt quick》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android Visibility控件显示和隐藏前端 vue表格数据导出Excel 文件实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

QML 修改TableView和TreeView滚动条样式

TreeView控件: 1 import QtQuick 2.9 2 import QtQuick.Controls 1.4 3 import QtQuick.Controls.Styles 1.4 4 import QtQml.Models 2.2 5 import QtQuick.Controls 2.12 6 7 TreeView { 8 id:c...

DirectSound---捕获音频、Qml/C++ 集成交互

DirectSound的音频捕获原理和播放原理差不多,内部在一个缓冲区上循环写入捕获到的数据,并且提供notify通知功能。 1. 音频捕获 因为捕获流程和播放流程类似,我们就不在这里赘述了,只给出简单的函数引用和图示: 最后两个是音效捕获接口,用来控制Aec(回声消除)、Noise Fill(噪音填充)、Ns(噪音压制)的开启与关闭: HRESULT D...

初识 QML 和 Qt Quick

一、什么是 QML? QML 是一种用户界面规范和编程语言。它允许开发人员和设计师创建高性能、流畅的动画和视觉吸引人的应用程序。QML 提供了一种高度可读、声明性、类似 JSON 的语法,支持与动态属性绑定相结合的命令式 JavaScript 表达式。 QML 全称:Qt Meta Language 或 Qt Modelling Language,主要包含...

Qt Creator介绍

简介 Qt Creator是使用Qt开发的IDE。Qt支持Windows、Linux/Unix、Mac OS X、Android、BlackBerry、QNX等多种平台,Qt Creator为不同平台提供了统一的开发环境。 Qt Creator集成了Qt Designer、Qt Assistant、Help等工具。因此,在开发过程中可以很快的通过Desi...

QML 学习(三)

经过前面两个教程,文字也能显示,也能处理鼠标事件了,来点动画吧。 这个教程实现了当鼠标按住的时候,Hello,World从顶部到底部的一个旋转过程,并带有颜色渐变的效果。 完整的源代码main.qml import Qt 4.7Rectangle {id: page500; height: 200color: "lightgray"Text {id:...

【QML 动态对象】Loader动态加载组件

Loader 元素用来动态加载可见的 QML 组件,它可以加载一个 QML 文件(使用 source 属性)或者一个组件对象(使用 sourceComponent 属性)。 对于拖延组件的创建很是有用的:例如,当一个组件需要在要求的时候被创建,或者由于性能原因一个组件不应该被创建时。 Item { 200; height: 200...