QtCore包含没有GUI界面的基础类。
QtGui包含GUI基础类。
QtNetwork包含网络类。
QtOpenGL包含OpenGL支持。
QtSql包含SQL数据库类。
QtXml包含XML和DOM类。(参见第45页)
QtAssistantClient允许你使用QT助手作为你的程序的文档浏览器。
Qt3Support包含为保证对QT3向下兼容的类。
在Qt 4.2最终版中,奇趣公司增加了QtDBus模块,用于支持Freedesktop.org的公共信息系统(DBus)。
需要连接的库文件由qmake的变量QT指定。默认包含变量core和gui。例如,要开发一个有网络支持的图形界面程序,你应该将值network添加到QT变量。即在工程文件.pro中添加这样的一行:
QT += network
要编写一个支持XML的控制台程序,只需要链接QtCore和QtXml,不需要QtGui,所以你必须添加值xml并且移除值gui。工程文件中添加如下两行:
QT -= gui
QT += xml
如果要使用Qt 4.0中的所有库文件,这样写:
QT += network opengl sql xml support(core和gui默认包含,不需要写)
除了在工程文件中指定之外,还有另外一个关于Qt库知识的特别有用的主题。除了定义类的独立头文件之外(这些头文件的文件名和它们描述的类的名字一致),QT也为它的程序库提供了头文件。这些文件中的每一个都包含了一个库的许多类文件的接口描述。因此,从本书开始到目前为止的所有例子中(我们都仅仅使用了QtGui中的类),我们没有写很多单个的#include声明,而只是简单的这样写:
#include <QtGui>
然而,这些库的头文件通常非常长,明显减慢了编译过程,写成<QtGui/QLabel>较好。如果编译器支持预编译头文件,这将不是一个问题,但是只有最近的编译器才支持(如GCC3.4以上的版本)。
QtCore是每个Q程序都必不可少的一个库。除了其它的,它提供了下面的功能:
基本数据类型,如QString和QByteArray
基本数据结构,如QList, QVector和QHash
输入输出类,如QIODevice, QTextStream和QFile
支持多线程编程的类(包括QWaitCondition和QThread)
基础类QObject和QCoreApplication(QApplication类的基类)
这些类都不依赖于GUI组件。独立于GUI使得Qt程序可以不使用GUI界面(如控制台程序)。
在非图形界面程序中,QCoreApplication承担了QApplication在图形界面程序中的职责:负责事件循环。如果你需要在网络连接中使用多线程的异步通信,就会发现这很有用。
QtGui库包含所有图形用户界面编程必须的类文件:
QWidget类和它的子类,如QLabel和QPushButton等
布局类(包括QVBoxLayout, QHBoxLayout和QGridLayout)
用于给程序添加菜单的类,如QMainWindow和QMenu
用于绘图的类,如QPainter, QPen和QBrush
提供现成的对话框的类(包括QFileDialog和QPrintDialog)
QApplication类
QtGui库依赖于QtCore库
QtNetwork库提供了部分编写网络应用程序需要的类。除了通过QTcpSocket和QUdpSocket类支持简单的套接字通信之外,网络库还通过QHttp和QFtp.支持CS(客户机-服务器)的HTTP和FTP连接。
和QtGui不同的是,QtNetwork依赖于QtCore库,但是它也可以与QtGui和其它库一起使用。
QtOpenGL库支持在Qt程序中使用OpenGL。它提供了QGLWidget类——一个Qt窗口部件,在其中你可以使用OpenGL指令绘图。QtOpenGL依赖于QtCore和QtGui库。
QtSql库提供Qt程序中访问SQL数据库的能力。这个库包含用于建立SQL数据库连接以及查询和修改数据的类。Qt支持的SQL数据范围包括:开源数据库PostgreSQL, MySQL和SQLite。QtSql依赖于QtCore库,我们将在第九章深入讨论。
QtXML库提供了一个简易的,非验证的XML解析器。它通过SAX2(Simple API for XML)接口实现这个功能。
QtXml也包含DOM标准(Document Object Model 文档对象模型)的一个实现。相应的类允许你解析XML文档,操纵树结构,以XML文档格式发布修改过的文档,或者使用DOM创建一个新的XML文档。
这个库依赖于QtCore库,我们将在第十三章深入讨论。
与前任Qt 3相比,Qt 4 的变化相当大:一些类包含的改进与Qt 3版本不兼容,还有一些类在Qt 4中被全新的不同名字的类取代。为了简化Qt 3程序移植到Qt 4的工作,奇趣公司在Qt3Support库中提供了相应的Qt 3的类。然而,在新程序中你不应该使用这个库,因为这些类已经停止开发了。因为这本书讲述Qt 4 编程,我们将不会使用这些类,而且以后也不会讨论它们。
W3C发布的基于XML的SVG向量图形格式,具有巨大的潜力。从Qt 4.1版本开始QtSvg库支持SVG规范SVG Basic和SVG Tiny,它们用于显示SVG文件和动画,虽然QtSvg库还不能创建它们,也不能作为将SVG文件当作XML文档通过DOM树操纵它们。
Qt助手库允许你精确控制Qt助手应用程序。允许你使用它作为你的程序的平*立的帮助文件浏览器。这个模块的核心是QAssistantClient类。
Qt助手使用的自定义帮助页面必须是基本的HTML格式,而且必须有一个XML文件用于描述文档结构。
本来QTestLib是在Qt核心发行版之外提供给付费用户的,从Qt 4.1.0版开始被纳入Qt常规发行版。测试库包含用于编写严格的单元测试的工具,涵盖的范围和Java中的JUnit类似。
QtDBus是Linux和类Unix系统上的一个消息协议。例如,Linux硬件抽象层(HAL)和即将发布的KDE4都使用DBus作为进程间通信协议。尽管Windows和Mac OS X的移植版已经存在,但Qt 4.2将只针对Unix系统提供QtDBus库。然而,将来可能会发生变化。
Windows平台特有的扩展ActiveQt使得可以通过Qt实现ActiveX组件和在Qt程序中使用ActiveX组件。然而,此功能仅仅在商业版的Qt中可用。
QT程序库的更多相关文章
-
如何在 VS2015 上开发 Qt 程序
所有Qt版本下载地址: http://download.qt.io/archive/qt/ 所有Qt Creator下载地址: http://download.qt.io/archive/qtcrea ...
-
Beginning Linux Programming 学习--chapter 17 Programming KDE using QT
KDE: KDE,K桌面环境(K Desktop Environment)的缩写.一种著名的运行于 Linux.Unix 以及FreeBSD 等操作系统上的*图形桌面环境,整个系统采用的都是 Tro ...
-
Unix 和&#183; Linux 系统概述
一.Unix 1.Unix 定义 Unix 是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序 '2.Unix 特点 ① 多用户:在同一时刻可以有多个用户同时使用Unix操作 ...
-
《linux性能及调优指南》 3.3 内存瓶颈
摘要:3.3内存瓶颈OnaLinuxsystem,manyprogramsrunatthesametime.Theseprogramssupportmultipleusers,andsomeproce ...
-
抗衡Win Linux全凭这些桌面环境
2012年01月25日 元老级桌面环境KDE Linux操作系统最早使用在服务器上,而桌面操作系统并不是Linux的重点突围.但是,近几年Linux桌面操作系统有崛起的趋势,抢夺了部分桌面操作 ...
-
Linux桌面“彩”起来:桌面环境及窗口管理器大盘点
2011-02-22 11:49:50 看到这个标题,很多人一定认为桌面环境和窗口管理器是一回事,但严格来说窗口管理器和桌面环境是有区别的.桌面环境(Desktop Environments)是最 ...
-
Linux就是这个范儿之第一次亲密接触(2)
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明.否则将追究法律责 1.2 不一样的图形操作 几乎所有Linux的新用户都会认为Linux的图形界面是相当的绚丽又多彩. ...
-
10.05 最初对Linux的了解,对Shell的认识
linux的起源:UNIX,代码开源,可以得到源代码,然后自己编译,通过以后可以运行程序. 特点:免费的;兼容POSIX1.0标准;多用户,多任务系统;良好的用户界面;提供了图形界面;支持多种文件系统 ...
-
(转)《linux性能及调优指南》 3.3 内存瓶颈
翻译:Hank (http://blog.csdn.net/fireroll)版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明.原文名称:<Linux Performance an ...
随机推荐
-
推荐几个优秀的java爬虫项目
java爬虫项目 大型的: Nutch apache/nutch · GitHub 适合做搜索引擎,分布式爬虫是其中一个功能. Heritrix internetarchive/heritrix3 ...
-
如何调试delphi的Access violation at address错误
1.什么是 MAP 文件?简单地讲,MAP 文件是程序的全局符号.源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方.任何时候使用,不需要有额外的程序进行支持. 2.DELPHI下生成MAP文 ...
-
本地plsqldev.exe连接远端oracle数据库
先看百度经验:http://jingyan.baidu.com/article/48b558e3540ecf7f38c09a3c.html 这里如果我们只有安装plsql工具,下载oracle精简版本 ...
-
【转】TCP/IP和SOCKET的区别
要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...
-
easyUI行删除
function removeRow(target,number) { if (number) { var index = getRowIndex(target); $datagrid.datagri ...
-
layui加载层
layer.load(1, { shade: [0.5, '#000'], //0.5透明度的灰色背景 content: '注册中...', success: function (layero) { ...
-
vmware--查看链接克隆依赖关系
我们都知道,虚拟机克隆有完全克隆和链接克隆两种克隆方式.当根据模版去链接克隆出很多机器时,时间一长或者把克隆后的机器改名了,我们就忘记了哪台机器是克隆出来的,哪台是直接装的.如果不小心把模版机器给删除 ...
-
运行tomcat7w.exe未安装指定的服务
新安装了tomcat7.042,但是启动tomcat7w.exe是提示未安装指定服务,解决方法如下: 在运行窗口输入cmd,运行DOS,输入以下命令: cd E:\apache-tomcat-7.0. ...
-
测试那些事儿—浅谈TCP/IP协议
TCP/IP协议是一系列网络协议的总和,是构成网络通信的核心骨架. TCP/IP的工作原理通俗的讲就是一个主机的数据要经过哪些过程才能发送到对方的主机上. TCP/IP协议采用四层结构,分别为应用层, ...
-
php利用curl获取网页title内容
/**$html = curl_get_file_contents($url); $title = get_title_contents($html); var_dump($title);*/ fun ...