_Linux下QT编程入门进阶.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《_Linux下QT编程入门进阶.pdf》由会员分享,可在线阅读,更多相关《_Linux下QT编程入门进阶.pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux 下 Qt 编程入门 悠游在线 网址 http:/ 前前 言言 Qt是Trolltech公司的产品,Trolltech是挪威的一家软件公司,主要开发两种产品:一种是跨平台应用程序界面框架;另外一种就是提供给做嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备,Trolltech公司网址:http:/ 是一个多平台的 C+图形用户界面应用程序框架,它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt 是完全面向对象,很容易进行扩展,并且允许真正的组件编程。1996 年开始,Qt 正式进入商业领域,它成为了全世界范围内数千种成功的应用程序的基础。Qt 同时也
2、是流行的 Linux 桌面环境 KDE 的基础,注:KDE 是所有主要的Linux 发行版的一个标准组件。Qt 目前支持以下平台:MS/Windows-95、98、NT 4.0、ME、XP、2000、2003(新版 Qt 兼容.NET)Unix/X11-Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多 X11 平台 Macintosh-Mac OS X Embedded-有帧缓冲(framebuffer)支持的 Linux 平台。Qt 有以下几个版本,基中 Qt 专业版和企业版是 Qt 的商业版本,Qt 自由版是 Q
3、t 的非商业版本,可以免费下载。?Qt 企业版和 Qt 专业版 提供给商业软件开发。它们提供传统商业软件发行版并且提供免费升级和技术支持服务。?Qt自由版是Qt仅仅为了开发自由和开放源码软件 提供的Unix/X11 版本。在Q公共许可证和GNU通用公共许可证 下,它是免费的。?Qt/嵌入式自由版是Qt为了开发自由软件提供的嵌入式版本。在GNU通用公共许可证下,它是免费的。只有你购买了专业版或企业版,你才能够编写商业的,私人的或收费的软件。如果你购买了这些商业版本,你也可以获得技术支持和升级服务。运行微软公司的 Windows 操作系统的Qt 只提供了专业版和企业版。专业版/企业版比较表 专业版
4、 企业版 Qt 的基本模块(工具、核心、窗口部件、对话框)与平台无关的 Qt 图形用户界面工具包和应用类 Qt 设计器 可视化的 Qt 图形用户界面的生成器 图标视图模块 几套图形用户交互操作的可视化效果。工作区模块 多文档界面(MDI)支持 OpenGL 三维图形模块 在 Qt 中集成了 OpenGL 第 1 页 共 1 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 网络模块 一些套接字,TCP、FTP 和异步 DNS 查询并且与平台无关的类。画布模块 为可视化效果,图表和其它而优化的二维图形领域。表格模块 灵活的可编辑的表格/电子表格 XML 模块 通过 SAX 接口和
5、 DOM Level 1 很好且已经成形的XML 解析器。SQL 模块 SQL 数据库访问类。本书主要讲述 Qt 在 Linux 下的编程基础知识。系统环境:操作系统红旗 LINUX 4.1 桌面版,qt-x11-free-3.3.2 下载地址:红旗 LINUX 4.1 桌面版:http:/www.redflag- qt-x11-free-3.3.2:http:/ 第 2 页 共 2 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 第一章第一章 Qt 的安装的安装 因为本书主要介绍的是 Linux 下 Qt 的编程,这里只介绍 Qt 在 Linux 下的安装。关于 Linux
6、 的安装介绍,不是本书的讲述的内容,如果您还没有接触过 Linux,先从学习Linux 基础开始吧。首先下载 Qt,进入 http:/ 下载页面,选择 GPL Versions,点击 Qt/X11 Free 链接地址,选中它 点击这里 点击后,有相应的下载链接,下载 qt-x11-free-3.3.2.tar.gz 文件。安装前,你可能需要root权限,这取决于你要安装Qt的路径的权限,首先,解压开压缩文件。cd/usr/local gunzip qt-x11-free-3.3.2.tar.gz#对这个包进行解压缩 tar xf qt-x11-free-3.3.2.tar#对这个包进行解包 或
7、者直接 cd/usr/local tar zxvf qt-x11-free-3.3.2.tar.gz 执行完后会生成一个包含主要的包中文件的/usr/local/qt-x11-free-3.3.2 目录,把qt-x11-free-3.3.2 重新命名为 qt(或者建立一个链接):mv qt-x11-free-3.3.2 qt 这里假设 Qt 要被安装到/usr/local/qt 路径下 你的主目录下的.profile 文件(或者.login 文件,取决于你的 shell)中设置一些环境变量 第 1 页 共 1 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ o QTDIR-你
8、安装 Qt 的路径 o PATH-用来定位 moc 程序和其它 Qt 工具 o MANPATH-访问 Qt man 格式帮助文档的路径 o LD_LIBRARY_PATH-共享 Qt 库的路径 示例:在.profile 文件(如果你的 shell 是 bash、ksh、zsh 或者 sh)中,添加下面这些行:QTDIR=/usr/local/qt PATH=$QTDIR/bin:$PATH MANPATH=$QTDIR/man:$MANPATH LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export QTDIR PATH MANPATH LD_LI
9、BRARY_PATH 在.login 文件(如果你的 shell 是 csh 或者 tcsh 的情况下),添加下面这些行:setenv QTDIR/usr/local/qt setenv PATH$QTDIR/bin:$PATH setenv MANPATH$QTDIR/man:$MANPATH setenv LD_LIBRARY_PATH$QTDIR/lib:$LD_LIBRARY_PATH 做完这些之后,你需要重新登录,或者在继续工作之前重新指定你的配置文件,这样至少$QTDIR 被设置了。否则的话安装程序就会给出一个错误信息并且不再进行下去了 安装你的许可证文件。对于自由版本,你不需要一
10、个许可证文件。对于专业版和企业版,你就需要安装一个和你的发行版一致的许可证文件。编译 Qt 库,并且连编实例程序、教程和工具(比如 Qt 设计器),就像下面这样。输入:./configure 这样的话就为你的机器配置Qt库。注意在默认条件下GIF文件支持选项是关闭的。运行./configure-help 就会得到配置选项的一个列表。阅读 PLATFORMS 文件能够得到被支持的平台的列表。生成库和编译所有的例程和教程:make 根据您机器的配置,编译速度会有不多,需要等待一段时间。如果你有问题,请看http:/ 2 页 共 2 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/
11、在很少的情况下,如果你使用了共享库,在这个地方你也许需要运行/sbin/ldconfig 或者其它相似的东西。如果你在运行实例程序的时候遇到问题,比如消息如下 cant load library libqt.so.2 你也许需要在配置文件中给定一个qt库的定位,并且以root的身份在你的系统中运行/sbin/ldconfig。并 且 你 不 要 忘 记 了 在 上 面 的 第 二 步 中 提 到 的 设 置 一 个LD_LIBRARY_PATH 环境变量。在线的 HTML 文档被安装到了/usr/local/qt/doc/html/,主页面是/usr/local/qt/doc/html/ind
12、ex.html。man 帮助文档被安装到了/usr/local/qt/doc/man/。你已经做完了。Qt 已经安装完毕。安装完毕后不会像 WINDOWS 安装程序一样,会在开始菜单上添加菜单。在Linux命令模式下,键入以下命令designer 就可以看到 Qt Designer 界面了。为了方便使用,您可以在桌面上添加一个快捷方式。Qt 提供了几种命令行和图形工具来减轻和加速开发过程。?Qt 设计器设计器 可视化地设计视窗?Qt 语言学家语言学家 翻译应用程序使之能够进入国际市场?Qt 助手助手 快速地发现你所需要的帮助?Qmake 由简单的宇平台无关的项目文件生成 Makefile?qe
13、mbed 转换数据,比如把图片转还为 C+代码?qvfb 在桌面上运行和测试嵌入式应用程序?makeqpf 为嵌入式设备提供预先做好的字体?moc 元对象编译器?uic 用户界面编译器?qtconfig 一个基于 Unix 的 Qt 配置工具,这里是在线帮助 小节小节 本章主要介绍了 Qt 在红旗 Linux Desktop 4.1 下的安装,至少 Qt 在其它系统下的安装方法,可详细查看安装说明,在 Linux 下可以在解压缩后,参考/usr/local/qt 目录下的 install文档。第 3 页 共 3 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 第二章第二章 H
14、ello World 作为一个初学者,安装完 Qt 后第一件事,当然 Hello World 一下,通常介绍编程的教科书都是从Hello World开始的,我不知道如果打破这个传统会带来什么后果,我现在还没有勇气去做第一个吃螃蟹的人。如果你不是第一次接触 Qt,可以跳过本章节。下面用两个经典的示例来写讲述 Hello World。2.1 从两个例子开始 2.1 从两个例子开始 示例一:示例一:运行 Qt Designer,点击菜单 File-new,新建一个项目,这里选择 C+Project,确定。接下来会提示项目保存位置,第 1 页 共 1 页 Linux 下 Qt 编程入门 悠游在线 网址
15、 http:/ 选择保存路径和文件名,确定,然后,点击菜单 File-New,选择 C+Source File,确定,录入以下内容:#include#include int main(int argc,char*argv)QApplication a(argc,argv);QPushButton hellobtn(Hello world!,0);hellobtn.resize(100,20);a.setMainWidget(&hellobtn);hellobtn.show();return a.exec();代码说明:#include 这一行包含了 QApplication 类的定义。在每一个
16、使用 Qt 的应用程序中都必须使用一个QApplication 对象。QApplication 管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。#include 这一行包含了 QPushButton 类的定义。参考文档的文件的最上部分提到了使用哪个类就必须包含哪个头文件的说明。QPushButton 是一个经典的图形用户界面按钮,用户可以按下去,也可以放开。它管理自己的观感,就像其它每一个 QWidget。一个窗口部件就是一个可以处理用户输入和绘制图形的用户界面对象。程序员可以改变它的全部观感和它的许多主要的属性(比如颜第 2 页 共 2 页 Linux 下 Qt 编程入门 悠游在线
17、 网址 http:/ 色),还有这个窗口部件的内容。一个 QPushButton 可以显示一段文本或者一个QPixmap。int main(int argc,char*argv)main()函数是程序的入口。几乎在使用 Qt 的所有情况下,main()只需要在把控制转交给Qt 库之前执行一些初始化,然后 Qt 库通过事件来向程序告知用户的行为。argc 是命令行变量的数量,argv 是命令行变量的数组。这是一个 C/C+特征。它不是 Qt专有的,无论如何 Qt 需要处理这些变量(请看下面)。QApplication a(argc,argv);a 是这个程序的 QApplication。它在这里
18、被创建并且处理这些命令行变量(比如在 X 窗口下的-display)。请注意,所有被 Qt 识别的命令行参数都会从 argv 中被移除(并且 argc也因此而减少)。关于细节请看 QApplication:argv()文档。注意:在任何 Qt 的窗口系统部件被使用之前创建 QApplication 对象是必须的。QPushButton hellobtn(Hello world!,0);这里,在 QApplication 之后,接着的是第一个窗口系统代码:一个按钮被创建了。这个按钮被设置成显示“Hello world!”并且它自己构成了一个窗口(因为在构造函数指定 0 为它的父窗口,在这个父窗口
19、中按钮被定位)。hellobtn.resize(100,20);这个按酒被设置成 100 像素宽,20 像素高(加上窗口系统边框)。在这种情况下,我们不用考虑按钮的位置,并且我们接受默认值。a.setMainWidget(&hellobtn);这个按钮被选为这个应用程序的主窗口部件。如果用户关闭了主窗口部件,应用程序就退出了。你不用必须设置一个主窗口部件,但绝大多数程序都有一个。第 3 页 共 3 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ hellobtn.show();当你创建一个窗口部件的时候,它是不可见的。你必须调用 show()来使它变为可见的。return a
20、.exec();这里就是 main()把控制转交给 Qt,并且当应用程序退出的时候 exec()就会返回。在 exec()中,Qt 接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。你现在可以试着编译和运行这个程序了。编译 编译 编译一个C+应用程序,你需要创建一个makefile。创建一个Qt的makefile的最容易的方法是使用 Qt 提供的连编工具 qmake。如果你已经把 main.cpp 保存到它自己的目录了,你所要做的就是这些:qmake hello.pro 第一个命令调用 qmake 来生成一个.pro(项目)文件,运行后会生成一个 makefile。你现在可以输入 ma
21、ke(或者 nmake,如果你使用 Visual Studio),然后运行你的第一个 Qt 应用程序!qmake hello.pro make./hello 运行后显示窗口 其实使用 Qt Designer 完全可以生成上面的代码,下面我们再看一个例子,示例二:示例二:运行 Qt Designer,点击菜单 File-new,新建一个项目,第 4 页 共 4 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 这里选择 C+Project,确定。接下来会提示项目保存位置,选择保存路径和文件名,确定。选择菜单 File-new,新建一个窗口,选择 Dialog,确定 第 5 页 共
22、 5 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 设置 Form1 的 Caption 为“我的程序”,在 Property Editor 设置窗口属性,如果你的 IDE上看不到 Property Editor,请通过菜单 Windows-Views,将 Property Editor/Signal Handlers 选上。接着在窗口上放一个 TextLabel,选择 Toolbox 上的 Common Widgets 上的 TextLabe,再添加一个按钮,PushButton,将 textLabel1 的 Text 设为“Hello World”,pushButton
23、1 的 Text 设为“关闭”。接下来为关闭按钮添加事件,选择菜单 Edit-Connections.,弹出 View and Edit Connections窗口,第 6 页 共 6 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 点击按钮“New”在新增项中,Sender选择pushButton1,Signal选择Clicked(),Receiver选择 Form1,Slot 选择 Close(),确定然后保存,到这里,基本就快完成我们的 Hello World 了,我们还需要一个 main.cpp 文件,点击菜单File-new,选择 C+main file(main.
24、cpp)第 7 页 共 7 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 文件名 filename:main.cpp,程序主窗 Main-Form:Form,确定,Qt 会自动生成 main.cpp 文件代码,#include#include form1.h int main(int argc,char*argv)QApplication a(argc,argv);Form1 w;w.show();a.connect(&a,SIGNAL(lastWindowClosed(),&a,SLOT(quit();return a.exec();好了,到这里我们的第二个 Hello
25、World 程序设计完了。保存项目,然后编译程序:qmake helloworld.pro make./helloworld 如果您保存的项目名称是 hellowrold.pro 就可以用上面的命令编译了。Qmake helloworld.pro先生成Makefile,make开始编译程序,编译完后我们就可以运行我们的程序了。./helloworld 运行,第 8 页 共 8 页 Linux 下 Qt 编程入门 悠游在线 网址 http:/ 点击“关闭”按钮,关闭程序。2.2 本章小节 2.2 本章小节 本章通过两个简单例子带你走入 Qt 世界,如果你已经是位 C/C+程序员,你会发现 Qt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _Linux QT 编程 入门 进阶
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内