网站首页 > 博客文章 正文
为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。
当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MFC的界面库代码也是比较混乱,当时主要看到qt有qss样式设计这个功能,可以尝试试下。当项目移植到到QT后,觉得MFC真的是可以抛弃了,MFC相对于QT缺点实在太多。最终一定要抛弃MFC的原因是,代码需要从windows移植到linux下,所以MFC的一个致命的缺陷,没法跨平台。
Qt为什么站稳c++GUI的top1
1. 工具软件丰富
QT不仅提供了功能丰富的SDK开发包,还提供了强大的工具,这也是我们选择他的原因之一。
基于VS的插件qt-vs-addin
qt的手册还是比较完备,并且包含了很多示例的源码。
?
基于XML的界面设计器Qt Designer,应该是c++领域最方便的界面设计器。
?
跨平台的开发工具 QtCreator,跨平台的c++开发工具,应该是在linux上最方便的c++开发调试工具,就算不用QT库,也可以用它来开发跨平台的c++项目,这是qt成为top1最牛逼的因素
?
2. 功能库丰富
除了提供了界面库之外,还提供了音频库,3d库,数据库SDK,WebEngine,网络库等,让我们做跨平台程序变得简便。
3. 开源并跨平台
可以自己通过QT源码进行移植,这是成为top1的第二牛逼因素,qt官方就已经提供了再windows,Android,ios,linux中运行的SDK
4. 架构的优势
界面源码与用户源码的隔离,qt的策略是没有界面都会生成一个对应的源码,比如有一个界面设计文件xps.ui 它会解析其中的xml生成一个对应了ui_xps.h 文件,这个文件你不需要修改,如果要调用界面中的控件直接通过 Ui::XPSClass ui; 这个对象定义也是写在ui_xps.h中。也就是你的业务逻辑就和界面控件对象的创建和设置做了隔离。
事件处理的便捷(灵活的信号槽机制),qt提供了信号槽机制,可以很好的降低耦合,提升代码的复用性,这是成为top1的第三牛逼因素。
5. 及其便捷的样式设计(像开发web程序一样设计界面)
可以很容易的做一个圆角边框,并且有渐变效果,鼠标移上去还发生变化,可以参考下面的样式表,qss基本和css类似,包括支持css的选择器,这是成为top1的第四牛逼因素,可以通过类名,对象名,和父类名称来设置。
6.有未来
如果问Qt的未来会如何,我觉得是稳中有进。之所以稳,是因为Qt原本有优势的领域,未来依然有优势,毕竟要求高性能,支持非windows系统,还要开发效率高,Qt的竞争者并不多。
而有进,是因为随着国产化的推进,许多软件需要国产化替代,这一两年我看到有很多使用Qt的新项目,我觉得是个好兆头。
猜你喜欢
- 2024-09-29 Qt的6个简单小案例(qt官方例子)
- 2024-09-29 Qt入门阶段之事件(qt入门阶段之事件是什么)
- 2024-09-29 Qt编写安防视频监控系统9-自动隐藏光标
- 2024-09-29 Qt5 事件(event)机制详解(qt事件是通过什么实现的)
- 2024-09-29 Qt 保持GUI响应的几种方法(qt保存快捷键)
- 2024-09-29 Qt如何模拟鼠标点击?(qt 模拟鼠标点击)
- 2024-09-29 Qt事件的接受与忽略(qt菜单栏按钮点击事件)
- 2024-09-29 「VTK」「DICOM」修改后的VTK sample code
- 2024-09-29 Qt事件(qt事件与信号槽)
- 2024-09-29 Qt事件总结(不良事件分析总结报告)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)