第4章 Qt桌面图软件设计.pdf
文本预览下载声明
第4 章 Qt 桌面软件设计
4.1 X11 窗口系统信息
UNIX 操作系统有很多种类,在UNIX 上开发软件是一个复杂的话题。
当我们开始编程的时候,需要注意一次开发后需要在不同的UNIX 操作系统上编译通过,
你不可能在 IRix 上开发了软件又到AIX 系统上去运行。这就需要使用跨平台的编译器来解
决跨平台编译通过的问题。
1.静态的连接
静态连接是最安全的也是最容易的一种方法,它为开发完成的库文件提供了一个制定的
地点,应用程序可以查找目录或者目标系统的库目录。
2 .建立一个静态的Qt 库
使用下面的方法来建立和安装一个静态版本的Qt 库。
cd/path/to/Qt
./configure –static –prefix /path/to/Qtother parameters
make sub-src
在这里使用prefix 指定了一个安装的目录,这样它就不会负载以前的安装。上面的例
子只是建立了一个 Qt 库,当使用make 命令之后,将会在所指定的库目录下发现所有的
Qt 库。
当一个应用程序需要加载静态Qt 库的时候,需要在工程文件中的LIBS 变量中声明。
3 .将静态Qt 库连接到应用程序
当Qt 建立了静态的库,下一步就是建立一个 makefile 并重新编译一个应用程序,首先
要做的是要转到包含应用程序的目录。
cd /path/to/Qt/examples/tools/plugandpaint
第 章 桌面软件设计
4 Qt 117 ║
下面就是使用qmake 为应用程序建立makefile ,并做一个完整的连接来执行操作。如果
需要连接一些发行的库,就需要调用qmake,并设置我们所要建立静态库的目录。
在这里,使用Linux 下的ldd 工具来检测应用程序是否已经连接到库文件中。下面是实
现的代码。
ldd ./application
这会在命令行的提示信息中给我们提示相关的输出。
这样就可以保证一个应用程序编译与连接没有错误,一个插件程序 plugandpaint 文件就
被开发出来了。要检测一个应用程序是否已经支持独立的库,最好的办法就是将这个编译好
的应用程序放置到其他的平台上安装并运行。
在这里需要注意的是,一个应用程序的运行依靠的是一个编译器和特定的库文件,当用
户需要重新发布自己的应用程序时,它们需要重新被指定。
4 .共享库
使用共享库有两种方法,一种是在应用程序执行的时候加载,另外一种方法是作为一种
插件的模式防止到目标系统的本地,这样应用程序就可以找到这个插件。
5 .构建一个Qt 的动态链接库
在这里我们已经安装了所有的Qt 的库文件,它是在安装Qt 的同时被默认安装的。
6 .将Qt 的动态库连接到一个应用程序
保证所有的Qt 的动态库都被构建完成之后,通过一个pluspaint 的应用程序来演示,首
先要跳转到包含这个应用程序的目录当中。
cd /path/to/Qt/examples/tools/plugandpaint
下面是使用qmake 为应用程序来新建立一个makefile 。
make clean
qmake -config release
make
下面是建立一个插件的完整过程。
cd../plugandpaintplugins
make clean
qmake -configr elease
make
如果以上的编译和连接都没有报错的话,就会执行plugandpain 来测试libpnp_basictools.so
与libpnp_extrafilters.so 插件文件。
7.建立一个应用程序包
在UNIX 操作系统上没有标准的包用来建立一个应用程序,因此只有通过编译源代码的
方式来安装程序。
为了发行一个 Qt 的应用程序需要明确的是:应用程序执行的目录必须是同一个目录,
显示全部