开发QTqt开发桌面应用程序序一般是在哪个平台上?

Qt 为什么在桌面应用(Windows 平台)中不流行呢?
qt的面向对象特点鲜明,也较为简单易学,为什么火不起来?windows下桌面应用太少,是不是有什么大的缺点?
因为Qt是给两种应用设计的框架。一种是必须跨平台的应用,无论如何都要支持两个或以上平台,并且两个平台要求功能同步,交互体验基本一致,但是开发成本不能成倍增加,Qt基本就是最好的选择了。第二种是规模很大的应用,源代码规模在至少30万行以上,并且带有复杂UI交互,对发布的时间进度有较高要求,开发组规模在10人或以上。不符合以上两种情况的应用虽然也可以用Qt开发,但是和用其他技术比起来没有特别突出的优势。符合以上条件的应用当然数量是不多的,所以题主见过的也就很少了。但是这种应用的用户规模未必就小,比如WPS,YY都是用户上亿的产品,VirtualBox应该也是千万级用户量的。Adobe Google Blizzard AutoDesk都在自己的某些产品里用过Qt,百万级用户量也是有的。反倒是 MFC 这种框架,似乎人人都会,到处都看到有人在用,其实真正大用户量的产品极少是MFC写的(我一时都没想出来有哪个,谁提个醒)。
这个还是和历史有关啊、、现在基于Qt的桌面软件越来越多的、、、许多GTK的也在向Qt迁移、、可以说在XP时代,微软自己有一套MFC,和成熟的vs系列开发工具、、而Qt-Creator是09左右才有项目。Qt早期的授权协议也是商业为主,开源部分是QPL,这个没有LGPL那么开放的。MFC后来淡出视野,在微软的平台上出现DUI这种直接绘图的了、、而专门做win软件的也慢慢有自己封装的UI库了、、开源软件来说,很多当时也是因为协议的问题用的GTK,所以相对Qt也就少了、、而09年Qt也以LGPL授权之后,授权的担心才可以消除的、、而09之后,DUI技术也成熟了、大多说win客户端也迁移的DUI了、、开源软件倒是开始选择Qt多了、现在在开源软件中UI大多都选择Qt了,好多也在迁移,LXDE都在迁移到Qt、、一些需要跨平台的软件也迁移到Qt了,例如WPS、、、Qt是没有什么问题的,只是在09之前Qt的开发和授权不是自由软件的,用开源版本可能面临版权纠纷的,09年以LGPL和GPL授权之后,而且开放开发之后才没了授权问题、、
qt的应用层主要是大型3d,vr,管理软件和器械嵌入软件。日常生活中所用的qt产品比较少。也就virtual box,google earth,VLC player等。但是大型系统就正好相反,这是c++决定的,而非qt。除了Maya之外,包括Houdini,斯特拉电车的系统软件等一大批3d软件都是qt写的,或者qt参与其中,qt(c++或python)是houdini默认二次开发环境。美国宇航局,欧洲宇航局,多个发达国家的地理信息,国土部门是默认qt平台开发。是默认qt开发,宇航局紧急编程系统是qt的python系统。3d软件几乎不能脱离qt,除maya全部使用qt外,autodesk的很多软件都用到qt,测试也用qt。几乎所有vr和游戏引擎都用到qt,其中包含cryengine。catia是世界最大最难的软件系统,全世界所有高级开发(飞机,宇航,汽车,工业,生物)全部都是caria设计的。 Siemens NX是仅次于catia的软件。这些软件都有些核心模块qt参与开发,在波音,庞巴迪,洛克希等等公司,qt是catia开发模块的默认模拟开发平台。其中波音公司用的最多(并非所有catia项目都运行在qt。但是有些项目只能,必须运行在qt)。BlackBerry和全世界多数新的核电站控制系统,能源控制系统都是qt下开发的。最先进的能源,防御控制系统,舰船控制系统,是qt下开发的。国家情报和管理系统控制中心:几乎全世界所有国家的中心控制中心(防御,情报,应急),都是基于qt开发,或者是正在转qt了。前段时间大家争论中国银行系统能否去IBM等公司的技术,但是大家不知道ibm等公司的金融业核心技术是在qt上开发的。华尔街多少精英每天打开电脑墙壁(至少4个显示器),其中至少1个是qt做出来的软件,另外一个是qt的python即时编程平台。美国一大批大公司,政府,军方使用的软件都是qt或者qt参与其中,这些软件都是几亿美元以上。现在美国政府,科研和军方,同时有上千个下一代软件黑科技项目是qt的了。因为有人耻笑Qt,所以补充发个例子,其实是目前世界上整合难度最大的系统。本人没有任何认识的人在这个项目工作,所有信息来自于美国媒体的公开信息。以下说一个公开的项目,是最近最热门的武器系统(再次,特别指出,这是都是公开信息):超级战舰DDG1000“朱姆沃尔特”级驱逐舰:朱姆沃尔特级驱逐舰:这个最新完工的项目即便在美国也是在报纸上疯狂了一阵子,软件系统难度,超过了欧洲和美国宇航局的宇宙信息系统(欧洲版虚拟宇宙公开宣传是在Qt开发,qt实时干涉,美国的按照招聘来看也是在qt开发,但是没有公开信息),系统运行于实时类linux,是Lynx OS,兼容linux,Qt是整个开发的中心平台,相当多模块是完全在Qt下开发的,可不仅仅用于UI,包括Qt的手机,android,ios,3d都被使用,嵌入式开发更被使用。主体防护,预警层,完全是个虚拟现实的游戏开发,3d环境和雷达,卫星,火控完全整合,Unreal引擎和Qt3D,OpenGL结合,并且和CAD,CAM结合(船体具备某些制造功能)。DDG1000是第一个3d显示预测结果的武器系统,导弹未经发射前,模拟器即可实施显示发射结果以及结果数据,并且数据和指挥中心同步,舰船将逐步实现了远程控制(二期代码升级2018年实现)。是目前世界上整合难度最高的软件系统,qt在其中占有重要位置,不仅仅是UI。Qt在DDG1000的使用,不仅仅是开发过程,Qt最后被整合到控制中心,程序员跟随舰队随时用Python等语言在Qt工作。DDG1000系统,又要整合在其他Qt开发的系统,并且在不同控制中心通过Qt协作。DDG1000系统是经过60多年发展的一个系统,很多尖端模块甚至在计算机没有发明之前就已经开始研发(按照概念可能性)。 这个系统会不断进步。但是很多超级功能还需要10年-20年才能分布实现。DDG1000系统在美国属于级别最高的工程之一,即便是其中最次要的工程,也需要美国公民经过政治审核才能参与。||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||以上说的还仅仅是qt平台,不包括visual studio,eclipse,intellij下的qt插件使用。也不包括金融公司的qt下java使用。
update: 虾米windows客户端. 畅游大厅. -----------------------------------确实不是很多, 出名点的就是yy,
wps吧. 为知笔记的linux版也是, 易改翻译什么的.但是使用Qt开发的软件越来越多了. 还有就是跨平台的软件, 很多都是Qt写的界面吧. 比如virtualbox,
ida, slickedit, tiled....
因为mfc为微软官方的。但Mfc为c++发展初期,大量使用宏,但当年windows火红时是最牛的开发工具。而qt相对比较年轻,又有跨平台需要,所以用户相对变少。但现在看来mfc开发的程序只能运行于windows平台,而qt开发的软件通过编译可以跨平台。现在很多互联网公司搞的客户端,都有linux,osx,windows多个版本,很多都是独立开发的,或使用内部库,但这样成本很高。这种方式造成多个客户端更新不同步,功能有限,维护复杂,开发成本高,等很多问题。wps因为使用了qt,所以跨平台容易。无论大小公司,新开发软件建议使用qt,因为其他平台开发成本和qt差不多,但qt代码复用好,能节省开发成本和降低复杂度。就算目前只运行于windows下的软件,也建议用qt,因为那一天跨平台了,可以赢得更多用户。自已开发一套跨平台ui界面,如firefox xul,成本高,不成熟。也不利于学习交流和招人。Autodesk maya,wps,skype,这些软件使用人数都很大,跨平台特征能赢得更多商机。
qt设计的初衷就是跨平台,就是它只能在原有系统(linux,windows和macos等)系统基础上去抽象共同的接口,类似于设计模式的bridge模式,这就导致了不能充分发挥原有系统的特色的界面特性,虽然看起来界面是一样的,但是性能上讲就有一些偏差,进一步导致了没有移植需求的项目采用自身平台的api。qt确切的说包含了非界面的东西,但是大多数人认为它仅是一个界面库,linux类的系统基本上都是后端服务器角色,也导致了linux上开发应用时忽略qt。另外每个平台自身的开发工具和使用习惯也导致了通用界面库不够流行。微软的visual studio不管怎么说都是非常具有生产力的IDE之一,装了visual studio之后直接就能用win32和mfc,非常方便,更为强大的是还有一些bcgsoft和codejock之类的界面扩展。qt这些年发展确实挺快,尤其是从nokia分离之后,采用LGPL加快了推广力度,android、ios、以及其他的嵌入式平台均可使用,能够快速开发qml、基于chromium的webengine,使用javascript v8引擎后的脚本绑定系统,以及能够使用类似css配置界面的脚本技术,python绑定,倾向性的代码和数据分离设计思路等,预计以后发展势头比较猛。兄的见解很独到,DUI这种技术其实是与某种业务关联性比较强的,比方说qq的界面技术放在做信息系统就不合适。现在qq内嵌chromium的方式倒是多见。
Qt的商用授权需要付费。基本上大的第三方软件,如QQ、迅雷等,都有一套自己封装的界面库。使用Qt的软件,大部分都是开源软件;或者开发商不愿意自己耗费精力去封装界面库,比如豆瓣FM和YY语音。ref:
一,Qt其实挺好用,设计也比较先进,但代码量实在庞大,要搞透,需要的精力不亚于自己写一个简单点的但也能满意需求的ui库。二,编译后体积庞大,qtcore里一堆与ui无关的东西,还不太好裁剪。三,为支持跨平台,引入了很多复杂度,但国内pc产品,有几个需要跨平台的。四,有实力的团队都愿意自己造轮子,满足成就感。
大体几点把。1)大型的软件或者大型公司一般因为界面库都多少有些不满足需求的地方,一般会自己开发一个界面库。而且一些专有领域,比如游戏的UI等,因为渲染等,不会用这个。2)MFC 遗毒还比较深,很多当年的小工具还是用MFC搞的,当然其实界面也不是真的MFC,是用的一些MFC UI扩展库。我自己2013开发的小工具还被迫用MFC。(当然非C++的都投奔WPF了。VS2015都已经开始嫌弃MFC了。)3)WEB UI 也占据了很大市场了。4)Qt这些年的发展也比较坎坷,没有后面的完全开源,远不会有今天的成功,也算是成也诺基亚,败也诺基亚,后面在手机领域的慢半拍等,也限制了他的发展。5)编译工具,链条,社区,还不是那么完善。比如继承在VS里面,比如最新的VS2015,Qt的集成就比较初步,工具链就慢半拍。其他工具用起来吧。都不是那么顺手。6)MOC这种编译模式,虽然无伤大雅。但总归让人觉得不太纯正。7)跨平台好是好,当然也是包袱。我最近两年在用QT,我的评价是,如果用C++开发原生界面。还是投奔Qt把。真简单。MFC那个害人东西,还是扔了吧。
习惯吧偶的大多桌面代码都是delphi(c dll)cocoa(osx)delphi多了跨win osx在慢慢转qt/qml,这东西是真跨平台 一套代码哪都跑win linux osx web
已有帐号?
无法登录?
社交帐号登录1 Qt简介Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。(百度百科)Qt作为高质量的跨平台框架,具有支持平台广泛、功能完整、开源、执行效率高、界面开发简单、开发工具完备等特性。下表是Qt作为高质量的跨平台框架,具有支持平台广泛、功能完整、开源、执行效率高、界面开发简单、开发工具完备等特性。下表是Qt与目前较为流行的跨平台解决方案Java和Xamarin比较结果。QtJavaXamarin支持的桌面平台Windows、Mac、Linux、 Unix、SolarisWindows、Mac、Linux、Unix、SolarisWindows、Mac、Linux支持的移动平台Android、iOS、Window PhoneAndroidAndroid、iOS、Window Phone开发语言C++JavaC#是否开源有开源版本(基于LGPL)也有商业版本OpenJDK开源只有商业版本,基于Mono框架为开源开发工具Qt Creator, Qt DesignerEclipse、NetBeansMonodevelop、Virtual Studio功能完成性功能十分完整功能十分完整功能不十分完整界面开发难度简单较复杂较简单成熟度十分成熟十分成熟不十分成熟目前最高版本5.28.04.1执行效率相当好较差一般依托公司(之前为Nokia)(之前是SUN)几种跨平台框架的比较&Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等组件,其核心库也加入了进程间通信、多线程等模块,极大的丰富了Qt开发大规模复杂跨平台应用程序的能力.Qt的开发工具Qt Creator(IDE)、GUI Designer(界面设计)、Build Tools(编译)、Help System(帮助系统)I18n Tools(多也极大简化了开发应用的难度。下图为Qt的技术堆栈&2& Qt 编程关键技术2.1 信号与槽信号和槽机制是QT的核心机制,是一种高级接口,应用于对象之间的通信。信号和槽是QT自行定义的一种通信机制,它独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta. Object Compiler)的Qt工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。所有从QObject或其子类(例如QWidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。对象甚至并不了解具体的通信机制。信号与槽连接是任意个的,甚至信号与信号也可以连接的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构造了一个强大的部件编程机制。2.2 Qt事件处理Qt可以说是是以事件驱动的UI工具集,信号与槽在多线程的实现也依赖于Qt的事件处理机制。在Qt中,事件被封装成一个个对象,所有的事件均继承自抽象类QEvent。Qt中事件的产生、分发、接受和处理:(1)事件的产生如按键,点击鼠标等等动作所产生的keyPressEvent,& keyReleaseEvent,mousePressEvent,mouseReleaseEvent等事件(分别被封装成QMouseEvent和QKeyEvent中),这些事件来自于底层的操作系统,它们以异步的形式通知Qt事件处理系统。(2)事件的接受和处理使用QObject。事件处理机制是QObject三大职责(内存管理、内省与事件处理制)之一。任何一个想要接受并处理事件的对象均须继承自QObject,可以选择重载QObject::event()函数或事件的处理权转给父类。(3)事件的分发:对于non-GUI的Qt程序,是由QCoreApplication负责将QEvent分发给QObject的子类-Receiver。对于Qt(3)事件的分发:对于non-GUI的Qt程序,是由QCoreApplication负责将QEvent分发给QObject的子类-Receiver。对于Qt GUI程序,由QApplication来负责。&3 Qt开发与实例分析下面通过一个指标计算的程序分析Qt开发完整过程。该系统需求:(2)从数据库中读取计算指标参数。(数据库操作组件)(3)计算所的指标需要用温度计的形式展示,并截图以便在文档中使用。(图像显示,截图)(4)能够将计算数据通过Excel导入到数据库中,并能够将计算结果导出到Excel中。(Excel操作组件)(5)需要有Windows和Mac两个版本且功能和界面布局要基本相同。(跨平台)3.1 开发环境下表为使用的开发环境,基本为开源软件系统平台Mac OSX 10.9使用框架,SDKQt 5.2 ;SDK:qt-mac-opensource-5.2.1开发工具Qt Creator 3.0;Qt Designer 3.0开发语言C++,SQL数据库SQLite 3测试平台Mac OSX;Window XP x86;Window 7 x86/x64其他开源软件FireFox SQLite Manager(管理数据库);Inno Setup Compiler(打包应用程序);VirtualBox(测试应用程序);yEd (绘制示意图)其他库文件:QtXlsx (用于进行Excel操作)&3.2 系统实现基本框架该系统综合使用了Qt的数据库模块、GUI模块和第三方的QtXlsx模块,使用VirtualBox完成系统打包和测试,使用Inno setup对Windows程序进行封装,使用SQLite Manager管理SQLite数据库。下图为系统实现基本框架。系统实现基本框架3.3 数据库管理Qt对数据的支持相当完善,Oracle、SQL Server、DB2、 SyBase、 MySQL、 PostgreSQL、 SQLite3 都可以完美的支持。由于需求要使用本地数据库并尽可能的小巧灵活,选择SQLite3作为数据库,通过FireFox 插件SQLite Manager进行管理,图4为SQLite Manager 管理界面。Qt使用QsqlDatabase类来管理数据,该类中包括所有数据库的管理行为,如addDatabase为添加数据库驱动,下面为连接SQLite3示例代码。QSqlDatabase&db&=&QSqlDatabase::addDatabase("QSQLITE");
&&&&if&(!QSqlDatabase::drivers().contains("QSQLITE"))
&&&&&&&&QMessageBox::critical(0,&QObject::tr("Unable&to&load&database"),&QObject::tr("This&demo&needs&the&SQLITE&driver"));
&&&&db.setDatabaseName&(dbName);
&&&&if&(!db.open())&{
&&&&&&&&QMessageBox::critical&(0,QObject::tr&("DataBase&Error"),db.lastError&().text&());
&&&&&&&&return&
&&&&}数据库连接代码对于已经连接上的数据库可以使用两种方法来进行操作:(1)使用QSqlQuerry,该方法可以直接执行SQL语句,使用与对数据库的批量处理。如:“query.exec ("DROP VIEW IF EXISTS 'data_x300';");”(2)使用QSqlTable,将数据库中的表转换为Qt中的Table,然后进行数据库增添删改等事务性操作,简单而且安全,推荐使用这种方法操作代码。下面为使用QSqlTable代码if((model-&insertRow&(row))&&
&&&&&&&&&&&&&&&&(model-&setData(model-&index(row,0),id))&&
&&&&&&&&&&&&&&&&(model-&setData(model-&index(row,1),name))&&
&&&&&&&&&&&&&&&&(model-&setData(model-&index(row,2),newPasswd))&&
&&&&&&&&&&&&(model-&setData(model-&index(row,3),hint))&&
&&&&&&&&&&&&&&&&(model-&submitAll()))
&&&&&&&&&&&&QMessageBox::warning&(this,&"Correct","用户添加成功!");
&&&&&&&&else
&&&&&&&&&&&&QMessageBox::warning&(this,&"Error","密码添加失败!");3.4 Qt中界面设计Qt使用Qt Designer Form,该方法直观且功能强大。首先使用Qt Designer建立并绘制以xxx.ui为后缀的文件,然后在编译时会将其转换为ui_xxx.h头文件,再进行统一的编译。图6为Qt Designer界面。在Qt5加入了对基于JS的QML进行界面的支持,QML觉Qt Designer Form有更强的控制能力和美化能力,而且使用目前流行的JS语言,相信必将成为未来发展趋势。该系统中还要求用温度计显示计算结果,因此单单是界面绘制工具并不能满足要求。需要先找到温度计的样本图,使用绘图工具进行修改,最后使用Style. Sheet脚本对控件进行美化处理。下图为StyleSheet处理脚本和效果。Style. Sheet处理脚本及效果该系统需要对结果截屏,Qt中截屏又两种方式,一种方式是在整个屏幕中,根据相对位置进行截屏(pixmap.grabWindow());另外一种是在Qt中的一个窗口中(pixmap.grabWidget()),根据相对位置进行截屏。下面为截屏代码:int&grapX=&year_lineEdit-&geometry&().x&();
int&grapY&=&year_lineEdit-&geometry&().y&();
pix&=&pixmap.grabWidget&(this,&grapX-2&,grapY&-2,&this-&width&()-grapX,&this-&height&()-grapY&-140);3.5 对Excel进行操作该系统将需用Excel将计算数据导入到数据库中,并将计算结果导出到Excel中。但在Qt中并没有对Office进行处理的组件,因此需要第三方组件进行支援。我们使用开源的Qt模块QtXlsx该模块可以对Excel进行操作,功能十分强大。(Qt更多开源模块可以在http://inqlude.org 上找到。)使用方法如下:(1) 首先在网站上下载QtXlsx模块项目,***Perl5,使用Qt Creator打开并编译;(2) 然后再命令行中使用“ make install”来***库(3) 在pro文件中加入xlsx模块,在头文件中加入"xlsxdocument.h"头文件即可以使用QtXlsx库进行Excel操作了,下面为QtXlsx操作代码:QString&fileName&=&path&+&"/index.xlsx";
&&&&&&&&QXlsx::Document&*xlsx&=&new&QXlsx::Document(fileName);
&&&&&&&&int&rowC&=&(model-&rowCount&());
&&&&&&&&int&columnC&=&(model-&columnCount&());
&&&&&&&&for&(int&i&=&0;&i&&&columnC;&++i)&{
&&&&&&&&&&&&xlsx-&write&(1,i+1,model-&headerData&(i,Qt::Horizontal).toString&());
&&&&&&&&for&(int&i&=&0;&i&&&rowC;&++i)&{
&&&&&&&&&&&&for&(int&j&=&0;&j&&&columnC;&++j)&{
&&&&&&&&&&&&&&&&xlsx-&write&((i+2),(j+1),&model-&record&(i).value&(j).toString&());
&&&&&&&&&&&&}
&&&&&&&&if&(!fileName.isEmpty())&{
&&&&&&&&&&&&if(xlsx-&save())
&&&&&&&&&&&&&&&&QMessageBox::warning&(this,"Correct","数据导出成功");
&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&QMessageBox::warning&(this,"Error","数据导出失败");
&&&&&&&&}4 系统的打包和测试4.1 Mac系统上打包Qt需要使用otool和macdeployqt两个工具,otool用于定位适用的动态链接库文件,macdeployqt用于对生成的Release版本的程序进行打包。具体步骤如下:(1)用Qt Creator编译生成Release版本程序,并测试通过;(2)进入build-q***-Qt_5_2_1_clang_64-Release文件夹;(3)在命令行下使用“otool -L”命令查看适用的动态链接库文件,如图所示。如缺少文件,添加到环境变量中;otool输出结果(4)在命令行下使用macdeployqt进行打包。下图为打包后应用结构图:打包应用结构(5)生成的App文件再使用Disk Utility程序封装,就可以发布了;4.2 Windows系统上打包Qt。使用windeployqt工具生成需要打包的文件夹时,会漏掉一些文件,因此需要手动添加一些动态链接库。具体步骤如下:(1)用VirtualBox 建立Windows 7虚拟机,***Qt开发完整的平台;(2)将QtXlsx源程序拷贝到虚拟机中,***Perl5,编译***该模块;(2)将待打包应用程序源代码拷贝到虚拟机中,编译成Realse版本应用;(3)将应用拷到一个独立文件夹中用windeployqt,生成需要的动态链接库文件;(4)将其他需要的动态链接库文件从Qt***目录中拷贝到该目录中;动态链接文件图(5)使用inno setup工具对该目录进行封装即可发布了。Inno Setup4.3 发布软件测试测试采用白盒测试,在Virtual Box分别建立全新的Mac OSX,Windows XP和Windows 7操作系统虚拟机,将打包程序分别拷贝到相应的系统平台中。分别***并测试系统功能是否符合要求。如果不符合,需要重新编程、编译、打包和测试,直到满意为止。5 Qt开发常见问题5.1 ui文件转换为头文件问题有时Qt Creator编译时会出现一些问题,提示缺少ui_***.h头文件。这是Qt系统出现了问题,解决方法是手动将ui文件转换为相应的头文件。如对***.ui文件,使用:$ uic ***.ui -o ui_***.h将其手动的转换为相应的头文件就可以编译了。5.2 Mac打包时出现不包含“libmysqlclient.18.dylib”问题在Mac系统中打包可能出现缺少“libmysqlclient.18.dylib”文件问题,这是因为系统没有***MySQL。解决方法是先***,macport,然后使用macport***MySQL。由于默认libmysqlclient.18.dylib文件位置不在搜索目录中,还需要将其拷贝到相应的目录中。5.3 添加应用图标对于Windows应用,需要建立一个rc文件说明ico图标文件,在pro文件中添加rc文件。表 为一个示例:Myapp.rc:
IDI_ICON1&&&&&&&&&&&&&&&ICON&&&&DISCARDABLE&&&&&"myappico.ico"
Myapp.pro:
RC_FILE&=&myapp.rc对于Mac应用,需要生成图片转成为icns文件,然后在pro文件中添加icns文件:ICON = myapp.icns参考文献[1] Qt . [EB/OL].http://qt-project.org/[2] Qt wiki. [EB/OL].http://zh.wikipedia.org/zh-cn/qt[3] SQLite. [EB/OL].[4] SQLite Manager . [EB/OL].[5] GIMP. [EB/OL].[6] Inno setup tools. [EB/OL].&[7] Virtual Box. [EB/OL].&[8] OpenOffice. [EB/OL].&[9] yEd. [EB/OL]. /en/products_yed_about.html[10] QtXlsx. [EB/OL]. http://qtxlsx.debao.me/[11] Java. [EB/OL]. /zh_CN/[12] Xamarin. [EB/OL]. /[13] Mono. [EB/OL]. http://www./Main_Page[14] Java. [EB/OL]. http://openjdk.java.net/[15]Qt 帮助. [EB/OL].&
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益

参考资料

 

随机推荐