赞
踩
qt有收费版本和不收费版本。
参考博客:https://blog.csdn.net/sharecode/article/details/7420306
现在最新的qt5.12 支持 win7以及win7以上的所以windows系统,支持苹果系统,支持linux系统,不支持Windows Xp系统。想要开发的软件支持xp系统,则只选择Qt5.6以及小于5.6的qt版本。
https://doc.qt.io/archives/qt-5.6/supported-platforms.html
https://www.cnblogs.com/findumars/p/6435635.html
https://stackoverflow.com/questions/31678657/qtwebengine-for-windows-xp-target
http://download.qt.io/officialreleases/qt/5.6/
http://download.qt.io/archive/qt/5.12/5.12.3/
qt在windows下开发可以选msvc和mingw。这两个都可以正常高效的在Windows下编译qt程序。有一些差别如下:
所以在各个平台上用原生的编译器就可以了,用平台原生编译器可以在相应的平台快速稳定的编译出应用程序。
a.在windows下使用MSVC编译
b.在linux下用gcc编译器
c.在macOS下选择clang,clang兼容gcc并且编译更高效占内存少,错误提示更准确。当然也可以在macos上选择gcc
GCC通常是跨平台软件的编译器首选。有别于一般局限于特定系统与运行环境的编译器,GCC在所有平台上都使用同一个前端处理程序,产生一样的中介码,因此此中介码在各个其他平台上使用GCC编译,有很大的机会可得到正确无误的输出程序
区别一
widget开发是qt开发的标准界面库,对应于visual studio 的Winform和WPF开发
Qt Quick是现在流行的使用网页开发技术开发软件界面的一种技术。
区别二
widget开发语言 C++和可视化拖动创建界面
Qt Quick开发语言 QML +Js
知道了上面的区别之后,就好决定你的项目使用哪种开发技术了。
比如要显示实时波形,excel,photoshop,与下位机通信之类的软件。这类软件用网页技术开发非常费劲甚至无法实现。
移动开发(安卓和ios应用)、嵌入式设备使用的动态触摸式界面和轻量级应用程序的开发。阅读类软件,音乐播放器,软件商店,轻便聊天工具的界面等轻量级的展示和交互类的软件。这类软件用widget开发反而复杂厚重。
widget开发软件界面中,默认的界面也是和winform一样丑丑的,但widget可以通过指定控件的stylesheet来充分定制控件的外观,而不用找什么第三方美化控件。指定控件的stylesheets是使用了网页技术中的css样式,在Qt叫做qss。再加上Qt的layout动态布局功能。可以实现非常好看的软件。这一点比winform好。外观高度定制修改和wpf是一个水平。
个人更喜欢WPF可以手工写xml非常灵活。Qt widget的".ui"界面文件只支持可视化拖动不够灵活。想要灵活制作UI只能通过直接写C++代码实现。
Qt对国际化支持很完善。而且动态布局可以避免不同种语言文字长度不同而导致的界面文字显示不完整问题。同时满足从右向左的语言书写需求。
如果你的应用只在windows下安装使用。那么按照使用习惯用QtCreater或Visual Studio都很方便。
如果你要做跨平台应用开发还是Qt creater最好。QtCreater 开发的好处:
很多常用算法实现都是C++的库可以开发出丰富高效的应用程序,这里举几个常用库的例子:FFmpeg,opencv,GLC,glut
第三方库的提供方式一般有:.a .so .dll .lib 源码
其中 .a 和 .so 是只能用在Linux和macos系统的。
其中.dll和.lib是只能用在windows系统平台下。
当你的qt应用程序需要跨平台调用同一个库的时候,只能是以下几种方式:
1.这个三方库,即提供了Windows平台对应的库也提供了Linux平台的对应的库,以及其他你需要的平台对应的库。
2.这个库是有源码的,并且可以通过源码编译获取各个平台上可用的库。
首先在PC软件领域对跨平台最好的界面库就是qt了,但是在实际中发现大公司在每个电脑系统平台上都是使用原生开发,并没有使用Qt,这是为什么呢?
使用Qt开发了一个软件之后,得到的体验如下:
1.Qt的安装包太大,由于qt的库不是系统自带,就导致安装包包含了很多qt的基础库。(ubuntu自带qt库)
2.Qt的ui是可以通过qss高度定制外观,一次编写多处编译,但是不同操作系统,操作习惯和交互体验不同,这就导致qt开发的应用不能两头兼顾,从而导致和原生开发的软件有明显的不同体验感。
3.大公司资金充足,因此为了更好的用户体验,选择各个平台使用原生开发。
1. 使用C++开发,开发语言本身的学习成本和使用成本比上层的语言(c#,java)要高挺多。
2.C++在写图形界面的时候显得啰嗦,写好多代码才能实现最终的效果。尤其.h文件和.cpp文件要分开写。实际体验是开发效率低(相比而言)。
3.即便是qt对C++的内存管理作了优化,但是大部分的地方还是要自己管理内存,使得写程序变得小心谨慎。刚入门者更是一头雾水。
4.在qt中,网络和定时器不能跨线程访问,只能在一个线程中打开、操作、和关闭;但是这个问题可以通过信号和槽来解决,网络只在一个线程操作,外部线程需要进行网络操作的时候使用信号和槽即可。信号和槽不仅提供了一种回掉函数机制,还提供了线程之间自动切换功能。这样分析过来,是qt限制的严格,虽然开发时候感觉绕,但是这样开发的程序比较稳健。
5.软件奔溃提示信息几乎没有。只能借助操作系统的奔溃捕获来获取部分奔溃信息,比如使用breakpad。平时调试只能用操作步骤稍多的单步调试和log打印。
6.macOS平台下的QtCreater不稳定,经常查看定义跳转不动,有些不应该报错的问题需要删除了生成文件,完全重新编译就没有了。
7.当然跨平台的主要优点和C++的优秀性能。还是“瑕不掩瑜”的。(这里表示如果你的需求是跨平台和高性能,那你就选Qt)。
前面谈到qt相比较其他开发平台的优缺点。无论如何在国内有一些行业软件确实主要使用qt开发,也就是说qt在国内有一定比例的市场。因此对于开发qt的程序员来说也是有前景的。
使用Qt开发软件的行业包括:医疗器械、电力行业、化工等检测仪器、军工等。
那么这些行业为啥要选择Qt呢,据我了解的几个原因如下:
1.这些行业的软件在使用qt之前都是使用VC++开发,而VC++逐渐没落,图形开发简陋死板,不容易开发出漂亮的界面。Qt同样是使用C++开发因此各个行业之前用VC++写的类库都能再次利用起来。因此在硬件相关企业应用最广的现在是Qt。
2.使用QT开发可以跨平台,对于做硬件相关的行业来说,简直是一大便利。
3.Qt支持嵌入式开发,对于硬件厂商想要在机器上安装一个触摸操作的屏幕(嵌入式Linux开发)使用Qt开发非常稳定便捷。
4.对于实时性要求高的测量计算,C++还是比其他解释型语言要快。而且不需要解释型语言要求的运行环境,从而节省了大量储存和运算量。因此Qt程序对嵌入式芯片的性能就要求不高,从而节省了硬件成本。这几个优点在Qt嵌入式开发中尤其明显。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。