跟QT没什么关系,实现自动更新主要有以下几个步骤:
实现一个更新服务器。
在你的软件里按照自定义的规则设计一个版本号。
每次你更新软件过后在更新服务器端留存你更新的版本号,并记录每次更新后有哪些组件进行了更新。
在你的软件每次启动的时候访问服务器,获取最新的版本号并与本地的软件版本号进行对比,如果本地版本号更低则查询有哪些组件进行了更新,并从更新服务器端进行下载并更改过的组件并自动覆盖。
普通的软件更新流程大概就是这样了,你问这个问题说明你多半没学习过服务器编程的相关内容,所以建议你先去选择一个常见的架构学习一下,自然就会了。
在Windows下开发的QT应用程序能在Linux系统应用么
QT 的跨平台是指一次编码,到处编译,你可以用同一份源代码在 WIndows 和 Linux 上编译,如果代码里面仅用到 QT 的部分,那么是可以编译通过的,编译出来的程序运行界面效果是差不多的。要在哪个平台运行,那必须先到那个平台把 QT 代码编译成本地应用程序,才能运行。
什么是QT软件?
[编辑本段]Qt软件
Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。
Qt支持下述平台:
MS/Windows - 95、98、NT 4.0、ME、2000、XP 和 Vista
Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
Macintosh - Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的Linux平台,Windows CE。
Symbian/S60 - 目前已经可以提供技术预览版本
Qt是诺基亚公司的一个产品。
Qt被按不同的版本发行:
Q商业版 提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。如果要获得最新信息,请浏览诺基亚公司Qt Software网站页面,或者与sales@trolltech.com联系。商业版多一些扩展模块。
Qt开源版是Qt仅仅为了开发自由和开放源码软件, 提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。最新的版本可以在这里下载。
从2009年3月发布的Qt 4.5 起,诺基亚将为Qt增添新的开源LGPL授权选择。
关于如何正确的选择这三种授权协议,可以阅读[1]。
从2009年5月11日起,诺基亚Qt Software 宣布 Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统[2] 。
在推出开放式 Qt 代码库的同时,Qt Software 在其官方网站发布了其产品规划(Roadmap)。其中概述了研发项目中的最新功能,展现了现阶段对 Qt 未来发展方向的观点,以期鼓励社区提供反馈和贡献代码,共同引导和塑造 Qt 的未来。
Qt 4.5版本
Qt 4.5涵盖了一些新的特色,它的最大改进是通过协同作用提升了整个框架的性能。图形系统、数据处理和网络引擎性能显著增强,实现了基于Qt的应用程序性能的明显提升。
Qt 4.5版本还提升了与WebKit页面渲染引擎的集成度,将Web和本地内容融合进丰富的用户体验当中。包括:
Netscape浏览器插件API支持,使Qt应用程序可以载入Flash(例如YouTube播放器) 更先进的Web 用户界面效果,包括动画、转换和缩放 新的JavaScript脚本语言引擎可提供更强的性能
Qt4.5还被移植进了苹果的Cocoa框架。之前的Qt只支持Carbon框架,现在的Qt 4.5两者都支持。这意味着开发人员能够以单一源代码创建出支持32位或64位字节的Intel或PowerPC Mac二进制文件。
Qt Creator
开发人员目前已经可以下载Qt Creator的1.1版本,这是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触Qt框架的开发人员能迅速上手和操作。
Qt Creator包含了一套用于创建和测试基于Qt应用程序的高效工具,包括:
一个高级的C++代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理工具
Qt Creator在LGPL 2.1版本授权下有效,并且接受代码贡献。目前的Qt Creator只支持桌面平台(Windows、Linux、Mac操作系统)的Qt开发,但随后数月就能支持嵌入式平台的开发。
Qt软件开发工具包 (Qt SDK)
全新的Qt软件开发工具包,可从www.qtsoftware.com下载。这个综合套装的设计主旨,是为开发人员提供从一个易于安装的二进制文件包入手,开始跨平台Qt开发这一过程中所需的一切。
Qt SDK包括了Qt库、Qt Creator IDE和Qt工具,这些都集成在一个易于安装的文件包里。
Qt SDK也同样也支持Linux/X11, Windows, Mac三种主流桌面操作系统。
[编辑本段]Qt的优势
Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有下列优点:
优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux,Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD,BSD/OS, SCO, AIX, OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。
丰富的 API
Qt包括多达 250 个以上的 C++ 类,还替供基于模板的 collections, serialization, file, I/Odevice, directory management, date/time 类。甚至还包括正则表达式的处理 功能。
支持 2D/3D 图形渲染,支持 OpenGL
大量的开发文档
XML 支持
Webkit 引擎的集成,可以实现本地界面与Web内容的无缝集成
但是真正使得 Qt 在自由软件界的众多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脱颖而出的还是基于 Qt 的重量级软件 KDE 。
[编辑本段]/*Qt文件格式*/
/*----------------------
Apple公司开发的一种音频、视频文件格式,用于保存音频和视频信息,具有先进的音频和视频功能,由包括Apple Mac OS,MicrosoftWindows 95/98/NT在内的所有主流计算机操作系统支持。是MAC常用播放软件——Quicktime的主要视频格式之一(其他的还有MOV等),Qt文件格式支持25 位彩色,支持RLC、JPEG等领先的集成压缩技术,提供150多种视频效果。
------------------------*/
以上内容与本词条无关
[编辑本段]Qt 的资源
Qt官方主页(英文)
http://www.qtsoftware.com/
Qt中文网论坛(Qt中文网论坛)(简体中文)
Qt编程是干什么的啊!要用什么编译器!
Qt工具包是一个完整封装的C 类库(可以类比MFC?),并且使用“一次编写,随处编译”的方式,可用于构建多平台图形用户界面。
Qt程序的编译可以使用VC,Borland C ,MinGW等多种编译器。Qt程序最主要的特性是独有的“信号和槽”的强大机制。
Qt使程序员通过使用一个单一源程序来构建跨平台的应用程序。该应用程序可以运行在windows、Mac os X、Linux、Solaris、HP-UX和其他使用X11的Unix版本。Qt的嵌入式版本Qt/Embedded可以应用于WinCE和嵌入式Linux,它和桌面版本具有相同的应用程序编程接口。此外还有应用于网页脚本的Qtpia。
Adobe PhotoShop Album就是一个Qt编写的面向大众的市场的Windows应用程序例子之一。
linux和windows编程机制是消息机制吗? QT为什么作为一个开发工具也有自己的编程机制,是信号与槽机制?
linux 和windows都是消息驱动机制
说白了 就是 回调函数.表层用 事件,信号和槽等等,都无所谓,最终调用的都是系统提供的API函数.
怎么打包发布基于Qt4 Windows的软件
先从Windows平台开始。 Windows平台下的软件发布最主要的需求是想办法找到在你的发布中应该包含哪些必须的文件, 同时要保证应用程序运行时能正确找到这些文件, 发布基于Qt的软件也是同样的需求。 就不同的情况一一阐述:
静态链接的情况
静态链接是最简单的情况,这种情况下需要发布的文件数量是最少的, 只需要发布一个单独的执行档外加编译器相关的dll文件。 这种情况下Qt库首先要静态编译:
configure -static [other options]
nmake sub-src
//如果用mingw编译,nmake替换成mingw32-make
//sub-src指只编译src目录,这样省去编译examples等目录的时间
注意哦,如果你在同一个build目录用不同的configure选项去编译Qt, 必须在重新configure之前运行nmake distclean清除以前生成的目标和中间文件, 保证一个干净的编译环境,不然有可能会出一些奇怪的链接错误哦~~
编译好Qt静态库下一步再编译应用程序:
cd application_dir
nmake clean
qmake -config release
nmake
编译成功之后应该得到一个可以独立执行的exe文件, 可以将程序拷贝到其他没有安装qt的机器上测试。 需要注意的是这个程序不一定百分之百可以运行,因为编译器带的库仍然是动态编译的,如果你的目标机里没有这些库的话仍然会有运行时的问题。 后面会讲到如何用工具来检查应用程序的依赖。
静态链接方法比较重要的缺陷是无法支持插件, 而且插件不能编译进程序中,所以插件提供的功能就丢失了。 这样一来要想用到插件的功能还是要用下面的方法。
动态链接的情况
动态链接程序的发布需要解决两个问题, Qt库需要与应用一起发布, 另外插件也要一起打包,并保证放在适当的位置, 这样应用程序才能找到它。
动态编译应用的基础是先将Qt库动态编译(默认参数即是动态编译),这样用普通的程序编译流程就可生成动态编译的执行档,使用的命令与上面相同。 我们可以用一个Qt的例子测试前面说的发布方法, 在Qt包里带的例子Plug & Paint
是个非常合适的测试例子,它既包含应用又自带插件文件, 可以很好的验证发布是否正确。 该例子在examples/tools/plugandpaint下。 这个例子如果编译成功, 得到一个plugandpaint.exe和pnp_basictools.dll、pnp_extrafilters.dll两个插件文件。
程序打包
第一步,将应用程序和Qt库拷贝到同一目录。(Windows下库的搜索先从当前目录开始,然后是在系统PATH环境变量指定的路径查找。)
第二步,检查应用程序还依赖哪些dll,如编译器带的dll或其他系统dll。 参见应用程序的依赖关系一节。
第三步,验证程序可以在目标系统上正确运行, 将目前包里的文件拷贝到目标系统上,尝试运行程序。
第四步,发布插件程序。 插件和普通的动态库的发布不同, 不能简单的将之拷贝到应用目录里。 应用程序在运行时会在其对应的plugins目录下去查找插件。 针对这个例子,发布包应该类似这样的结构:
模块
文件名
执行档 plugandpaint.exe
Basic Tool插件 plugins\pnp_basictools.dll
ExtraFilters插件 plugins\pnp_extrafilters.dll
Qt Core模块 qtcore4.dll
Qt Gui模块 qtgui4.dll
除了程序和Qt库,还有下面的编译器库:
VC++ 6.0
VC++ 7.1 (2003)
VC++ 8.0 (2005)
C运行库 msvcrt.dll msvcr71.dll msvcr80.dll
C++运行库 msvcp60.dll msvcp71.dll msvcp80.dll
插件的位置除了Qt默认的路径还可以通过代码里调用Qt的API来指定, 相应的API是QApplication::addLibraryPath()或QApplication::addLibraryPaths(). 如:
qApp->addLibraryPath(“c:\some\path”);
上述代码的推荐调用位置是在main函数中,QApplication构造完毕之后。 应用程序会在搜索默认路径之后去搜索你指定的库路径。
Visual Studio 2005
vs2005编译的程序在发布的时候还需要考虑一些额外的情况,比较麻烦点。 要把manifest文件拷贝到应用程序的目录, 这个文件包含应用的依赖信息, 在运行时需要用到。 另外,如果你的动态库的依赖和应用不同,那么还需要把manifest文件内嵌到dll文件中。 Qt4.1.3之后的版本提供了CONFIG选项来提供内嵌manifest文件的功能, embed_manifest_dll和embed_manifest_exe, 用法是将下面的选项加入pro文件, 如下:
CONFIG+=embed_manifest_exe
默认情况下embed_manifest_dll已经开启。 关于manifest文件的更多信息参考MSDN的相关文章。
有两种发布vc运行库的方法, 一个是安装vs的运行库到目标系统中, 另外是将库打包到应用程序的目录。 打包vs运行库很简单,就是把 <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC80.CRT拷贝到应用程序目录,与应用程序一起打包。 如果你在打包运行库的同时还要发布插件程序,要注意把manifest文件从插件中去掉,不然在一些系统上会导致插件无法加载。 去掉manifest的方法是在插件的pro文件中加入下面的选项:
CONFIG-=embed_manifest_dll
VS系统的运行包可以免费获得, 只需要将这个安装包和你的应用安装包一起发布,并且在安装你的程序的时候去运行这个安装包就行了。 比如32位的x86系统, 安装32bit-x86-vs运行时包。 其他平台对应的包可以在微软网站找到。
高手请入!在Windows上QT编程问题!
第一个问题。
完全可以
第二个问题
由于我很少用mfc,所以我不能告诉你会有什么不利因素,我从一个qt开发人员的角度来讲qt有以下几个特点我比较喜欢
1、qt api比windows api更简单,更易用,更容易上手。
2、qt的信号/槽要比win32的回调机制舒服得多,看起来舒服,用起来也方便。
3、qt 为界面开发提供了很多方便之处,从最开始的QWidget,样式表,QGraphicsView到现在的qml 无一不为界面开发提供了方便。qml更是解释性语言,大爱。
4、qt一次编码,多次编译,可以达到跨平台的目的。
5、qt的提供的网络,多线程,容器类,字符串类相当的强大,qt中也提供了对mvc架构的支持,降低了UI和底层数据模块的耦合性。
6、qt提供了隐式共享,显式共享等机制,QtWebKit模块提供网页浏览的一整套机制。
7、还有很多我没有列举出来的。qt对动画的支持,对多媒体文件的操作(音频、视频、图片等),数据库操作,对openVG/openGL的支持,对自定义动态链接库的支持,对不同字符编码的支持等等,基本上你能想到的,它都提供了。除此之外,qt对标准c++里的容器类也提供了相应的转换接口。
8、qt提供了一套自己的内存管理机制。
总之。qt是非常强大的。
由于我的qt水平有限,我列举的这些东西也只是qt的一部分。mfc当然也有它自己的优点。可惜我对mfc了解的太少。-_-!
转载请注明出处51数据库 » qtwindows编程软件 用QT编程如何实现软件自动更新