软件特攻队|为什么 Qt 成为 c++ 界面编程的第一选择?
一、前言
为什么说QT越来越成为界面编程的第一选择,这要从当初为什么从MFC转到QT开始说。若想把MFC开发界面想做得好看一些是十分困难的一件事,引用第三方基于MFC的界面库代码也比较混2 ` } [ + x D $乱,而当时看到qt有qsc ~ e 4 g d,MFC相较于QT缺点实在太多了。并且MFC还有一个致命的缺陷,那就是没法跨平台。
至于为什么不直接使. ) 用C# WPF来做E N 2 J c e r 1界面,如果项目和工具是C#做的,使用C++确实可以和C#互相调用,并且也能断点调试。但是在性能上还是有不少的损失。这对于我们做音视频和三维仿真项目是有影响的,所以只能在一些对性能没有极致要R S Z # 0求的1 C X % i ^项目中使用C#。
二、QT历史
简单来y I U q介绍一下QT历史,知道历史的目的是要借此判断使用此d 8 l 1 R D s库是否会有风险,是否会突然停止更新,很多开源库就是没有做好商业化而最终都是停掉了。
Qf % v G # i 8 l vT由奇趣科技公司开发
2008 诺基亚从奇趣科技公司收^ a )购Qt, 并增加LGPL的授权模式
2011 芬兰的Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile, Qt Commercial由Digia负责
QT的高峰期是在诺基亚智能手机如日中天的时候,那时候诺基亚塞班系统的手机应用大量都是基于QT研发的,但是随着苹果和安卓的流行a = 3写在ui_xps.$ t *h中。也就是说你的业务逻辑就和界面控件对象的创建和设置直接做了隔离。
其次关于事件处理的J V * t便捷(灵活的信号槽机制),QT给用户提供了信号槽机制,以至于可以很好的降低耦合,从而提升代码的复用性。
5. 及其便捷的样式设计(像开发web程序一样设计界面)
使用QT可以很容易的做一个圆角边框,并且C J # ! I 5 i # q有渐变效果,鼠标移上去还发生变化,可以参考下面的样式表,qss基本和css类似,包括支持css的选择器,可以通过类名,对象名,和父类名称来设置。
QPushB- U 8 7 $ 7 { mutton:!hx l Pover
{
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(120, 120, 120, 255), stop:0.495 rgba(39, 39, 39, 255), stop:0.505 rgba(39,39, 39, 255), stop:1 rgba(120, 120,120, 255));
border-radius:5px;
}
QPushButton:hover /* hover 鼠标悬停*/
{
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:. 7 X f1, stop:0 rgba(39, 39, 39, 255), stop:0.495 rgba(120, 120, 120, 255), stop:0.505 rgba(120,2 G J N @ K = #120, 120, 255), stop:1 rgba(39R A % $ , 39,39, 255));
border-radius:5px; /*圆角边框*/
}