logo资料库

Qt控件大全.pdf

第1页 / 共226页
第2页 / 共226页
第3页 / 共226页
第4页 / 共226页
第5页 / 共226页
第6页 / 共226页
第7页 / 共226页
第8页 / 共226页
资料共226页,剩余部分请下载后查看
目录 《Linux 环境下 Qt4 图形界面与 MySQL 编程》 ............................................................................ 4 前言................................................................................................................................................... 4 第一章 绪论 ................................................................................................................................... 5 1.1 图形界面设计的必要性 .................................................................................................. 5 1.2 Linux 常用的图形化界面编程工具 ................................................................................ 6 1.2.1 Qt........................................................................................................................... 6 1.2.2 GTK+ ...................................................................................................................... 7 1.3 两种常用的 Linux 数据库 ............................................................................................. 8 1.3.1 MySQL ................................................................................................................... 8 1.3.2 SQLite .................................................................................................................... 8 1.4 图形界面与数据库综合编程技术 .................................................................................. 9 第 2 章 Qt4 图形界面编程基础 .................................................................................................. 10 2.1 Qt Creator ...................................................................................................................... 11 2.2 安装 Qt 环境及 Qt Creator(1) ................................................................................. 11 2.3 信号和槽机制................................................................................................................ 17 2.4 一个抛砖引玉的实例(1) .......................................................................................... 19 第 3 章 Qt4 控件与示例精讲 ...................................................................................................... 24 3.1 布局(Layouts) ................................................................................................................. 25 3.1.1 绝对布局 ............................................................................................................. 25 3.1.2 手工布局 ............................................................................................................. 26 3.1.3 Qt 布局管理器 .................................................................................................... 27 3.2 间隔器(Spacers) ............................................................................................................. 29 3.3 按钮(Buttons) ................................................................................................................ 30 3.3.1 PushButton 控件 ................................................................................................. 31 3.3.2 RadioButton 控件 ............................................................................................... 32 3.3.3 CheckBox 控件 .................................................................................................... 33 3.3.4 示例 1:PushButton、RadioButton 和 CheckBox 控件的综合应用(1) ...... 35 3.3.5 ToolButton 控件 ................................................................................................. 42 3.3.6 示例 2:ToolButton 的应用(1)..................................................................... 43 3.3.7 CommandLinkButton 控件 ................................................................................. 47 3.3.8 示例 3:CommandLinkButton 的应用(1) .................................................... 49 3.3.9 ButtonBox 控件 .................................................................................................. 55 3.3.10 示例 4:ButtonBox 的应用(1).................................................................... 57 3.4 单元视图(Item Views) ................................................................................................... 61 3.4.1 ListView 控件 ...................................................................................................... 62 3.4.2 示例 5:ListView 的应用 ................................................................................... 63 3.4.3 TreeView 控件(1) .......................................................................................... 67 3.4.3 TreeView 控件(2) .......................................................................................... 68 3.4.4 示例 6:TreeView 的应用(1) ....................................................................... 69 3.4.5 TableView 控件(1) ......................................................................................... 74 3.4.6 示例 7:TableView 的应用 ................................................................................ 76 1
3.4.7 ColumnView 控件 ............................................................................................... 79 3.5 单元组件(Item Widgets) ............................................................................................... 80 3.5.1 ListWidget 控件(1) ........................................................................................ 81 3.5.2 TreeWidget 控件(1) ....................................................................................... 83 3.5.3 TableWidget 控件(1) ..................................................................................... 88 3.5.4 示例 8:TableWidget 的示例 ............................................................................ 93 3.6 容器(Containers) ............................................................................................................ 98 3.6.1 GroupBox 控件.................................................................................................... 99 3.6.2 ScrollArea 控件 ................................................................................................. 100 3.6.3 示例 9:GroupBox 和 ScrollArea 的示例(1) .............................................. 101 3.6.4 ToolBox 控件..................................................................................................... 105 3.6.5 示例 10:ToolBox 的应用 ................................................................................ 108 3.6.6 TabWidget 控件(1) ...................................................................................... 115 3.6.7 示例 11:TabWidget 的应用(1) ................................................................. 119 3.6.7 示例 11:TabWidget 的应用(2) ................................................................. 121 3.6.8 StackedWidget 控件 ......................................................................................... 124 3.6.9 示例 12:StackedWidget 的应用 .................................................................... 125 3.6.10 Frame 控件 ..................................................................................................... 129 3.6.11 Widget 控件 .................................................................................................... 131 3.6.12 MdiArea 控件.................................................................................................. 132 3.6.13 示例 13:MdiArea 的应用(1) ................................................................... 135 3.6.14 DockWidget 控件 ............................................................................................ 140 3.6.15 示例 14:DockWidget 的示例 ....................................................................... 142 3.7 输入组件(Input Widgets) ............................................................................................ 147 3.7.1 ComboBox 控件 ................................................................................................ 148 3.7.2 Font ComboBox 控件 ........................................................................................ 151 3.7.3 LineEdit 控件 ..................................................................................................... 152 3.7.4 TextEdit 控件 .................................................................................................... 154 3.7.5 PlainTextEdit 控件 ............................................................................................ 155 3.7.6 示例 15:ComboBox、LineEdit 和 TextEdit 的应用(1) ............................. 156 3.7.7 SpinBox 控件 ..................................................................................................... 161 3.7.8 Double SpinBox 控件 ........................................................................................ 163 3.7.9 Slider 控件 ........................................................................................................ 165 3.7.10 示例 16:SpinBox、Double SpinBox 和 Slider 的应用(1) ....................... 167 3.7.11 Dial 控件 ......................................................................................................... 171 3.7.12 示例 17:Dial 的应用 .................................................................................... 173 3.7.13 ScrollBar 控件 ................................................................................................. 175 3.7.14 DateEdit 控件 .................................................................................................. 177 3.7.15 TimeEdit 控件 ................................................................................................. 179 3.7.16 DateTimeEdit 控件 .......................................................................................... 181 3.7.17 示例 18:DateEdit、TimeEdit 和 DateTimeEdit 的应用(1)..................... 182 3.8 显示组件(Display Widgets) ......................................................................................... 188 3.8.1 Label 控件 ......................................................................................................... 189 3.8.2 TextBrowser 控件 ............................................................................................. 191 2
3.8.3 示例 19:TextBrower 的应用 .......................................................................... 193 3.8.4 GraphicsView 控件 ........................................................................................... 196 3.8.5 示例 20:GraphicsView 的应用(1)............................................................. 200 3.8.6 Calendar 控件 ................................................................................................... 205 3.8.7 示例 21:Calendar 的应用 .............................................................................. 208 3.8.8 LCDNumber 控件 .............................................................................................. 212 3.8.9 示例 22:LCDNumber 的应用 ......................................................................... 214 3.8.10 ProgressBar 控件 ............................................................................................ 217 3.8.11 示例 23:ProgressBar 的应用(1) ............................................................. 219 3.8.12 Line 控件 ......................................................................................................... 225 3
《Linux 环境下 Qt4 图形界面与 MySQL 编程》 前言 Linux 操作系统作为源码开放的自由软件,经过近 20 年的发展与壮大,越来越受到 IT 界的认可,在信息技术领域发挥着重要作用。图形界面是 Linux 走向成熟的重要支撑技术, 备受众多开发者的重视。在每个工程项目中,几乎都离不开数据库技术。因此,稳定的 OS、 友好的图形界面和完善的数据库技术构成了一个完整的工程项目。 面对 Linux 操作系统图形界面与数据库编程,很多学习者不知道如何下手。本书正是在 这种背景下编写的,紧紧围绕本书的写作主线“图形界面编程控件与数据库编程基础→简单 易学的实例→实际工程项目开发与场景分析”,以当前最新的 Qt4.7 为依据,采用“深入分 析控件+实例解析”的方式,并配合经典的实际工程项目,对 Linux 操作系统下的 Qt4.7 与 MySQL 编程技术进行了全面细致的讲解。本书主要分为以下三大部分: Linux 图形界面编程基础。介绍 Qt4.7 的全部控件,并针对每个控件设计了一个简单易 学的实例,抛砖引玉,加深读者对 Qt4.7 控件的认识和理解。 基于 Linux 操作系统的 MySQL 数据库设计基础。介绍 MySQL 基本操作,并针对每个操作 设计了一个简单易学的实例,抛砖引玉,加深读者对 MySQL 操作的认识和理解。 基于 Qt4.7 与 MySQL 的经典的实际工程项目案例开发。在本书中设计了列车时刻表查询 系统、酒店客房管理系统、房屋租赁系统、书店管理系统、学生上机考试系统、校园点菜系 统、餐饮信息服务系统、视频音频播放器、桌面常用软件小助手、俄罗斯方块游戏和局域网 聊天系统。这些案例给读者提供了实际工程项目开发参考。 在本书的编写过程中,参考和借鉴了很多资料,它们为本书的编写和实验例程的解决方 案提供了重要的指导作用。本书中的范例源代码可以到华章网站(www.hzbook.com)下载。 本书主要由邱铁、周玉、张民垒等完成编著任务。在此,感谢所有参与本书构思、解决 方案、编辑和出版工作的同事、同行和为本书编写提供灵感的同志们,其中马利超参加了代 码调试和部分文档整理,陈方疏、易磊、刘继伟、王革正、陈坚、宋莉莉、张涛、郝若男、 刘晗、张晓彤、王宇辰、高凡等在课程设计中的构思被本书采纳,并被设计成典型案例,向 他们表示感谢。 开源项目还在向前飞速发展,Qt 与 MySQL 版本还在不断更新,书中难免存在错误和不 妥之处,恳请读者批评指正,并将信息发送到 openlinux2011@gmail.com,我们会尽力及时 答复。——编者。 4
第一章 绪论 《Linux 环境下 Qt4 图形界面与 MySQL 编程》本书以“图形界面编程控件与数据库编程 基础→简单易学的实例→实际工程项目开发与场景分析”为写作主线,以当前最新的 Qt4.7 为依据,采用“深入分析控件+实例解析”的方式,并配合经典的实际工程项目,对 Linux 操作系统下的 Qt4.7 与 MySQL 编程技术进行了全面细致的讲解。本节为大家介绍图形界面设 计的必要性。 本章目的: 了解图形界面设计的必要性 认识几种常用的图形化界面编程工具 认识几种常用的 Linux 数据库技术 图形界面与数据库综合编程 1.1 图形界面设计的必要性 在信息技术高速发展的今天,无论是 PC 应用软件还是嵌入式设备,人们对软件的友好 支持性要求逐渐提高,因此出现了图形用户界面(Graphical User Interface,GUI)技术。 它是一种综合了计算机技术、美学、心理学、行为学以及各商业领域需求分析的人机系统工 程,强调“人—机—环境”三者作为一个系统进行总体设计。图形用户界面技术的出现,改 变了传统的采用终端命令行显示与控制的方式,从可视化、交互性和友好性等方面带来了极 大的优越性。 控件功能的可视化。在图形用户界面编程工具中,将不同的用户需求做成控件的形式, 在编程时,可以从控件库中选择相应的控件进行设置,从而达到自己的功能需求。每个控件 的功能都能直观地显示出来,具有良好的可视化效果。 图形用户界面建立了与用户的互动交流。采用终端作为控制,可操作性差。当程序执行 时,与用户的交互性差。图形用户界面技术将用户与程序执行过程控制紧密结合起来,从而 使用户的需求及时地在图形用户界面中得以实施并直观地显示出来。 用户界面友好性。图形用户界面的设计要考虑人的行为学和心理学特点,符合用户的习 惯,并在美学方面达到和谐统一。使用户操作方便,给人以舒适的感觉。 5
1.2 Linux 常用的图形化界面编程工具 本节介绍在 Linux 操作系统中编程时,常用的两种编程工具:Qt 和 GTK+。 1.2.1 Qt Qt 是一个跨平台的图形界面开发平台,最早由挪威的 TrollTech 公司于 1992 年进行开 发。2008 年 6 月,NOKIA 公司获得了 Qt 的开发权,继续对 Qt 平台进行开发。Qt 图形界面 开发平台可进行嵌入式系统应用程序和桌面系统应用程序的开发,支持 Windows、Linux/X11、 Mac OS X 等操作系统。Qt 官方网页:http://qt.nokia.com/,如图 1-1 所示。 Qt 采用 C++语言,包含了丰富的 C++类,包括窗口界面设计的接口、IO 控制接口、绘图 接口、多媒体接口、数据库操作接口、网络通信接口、XML 接口、模块测试接口等丰富的开 发接口。软件开发人员通过使用这些接口,可以方便、高效地完成应用设计与程序开发。由 于采用 C++语言,Qt 具有较高的执行效率。此不同平台间的 Qt 开发接口是相同的,因此, 可以有效地降低 Qt 应用程序跨平台开发的移植成本。 6
Qt 不仅仅是一个图形界面开发类库,而是一套拥有相对完整的开发环境的开发工具。Qt 提 供了丰富的开发工具,用来提高应用设计开发人员的编程效率。这些工具主要包括:界面设 计工具 Qt Designer、工程管理工具 qmake 等。在最新的 Qt4.5 及以上的版本中还加入了 Qt 程序开发的 IDE 环境 Qt Creator,以及与其他开发工具的扩展插件,可以支持 Visual Studio 和 Eclipse 等常用开发工具。本书的实例都是基于使用 Qt4.7 的 Creator 集成开发环境而编 写的。 NOKIA 公司收购 TrollTech 公司后,推出了两个重要版本: Qt 商业版:主要面向商业软件开发。这些软件用于商业用途时,需要支付一定的费用,并 在有效的时间段内得到一定的技术支持。 Qt 开源版:源码开放,遵循 GNU 通用公共许可证(General Public License,GPL),可以进 行自由开发。 1.2.2 GTK+ GTK+来源于 GNU Image Manipulation Program(GIMP)(这是一个 GNU 开放源码项目), 由 Peter Mattis 和 Spencer Kimball 共同开发。 确切地说,GTK+是一个图形用户界面开发工具库。利用这个工具库可以创建基于图形用户界 面的应用程序,也就是说,GTK+集成程序员编程时需要用的控件库,利用这些库可以创建用 户所需要的图形界面。GTK+是从 GTK 中分离出来的,“+”代表了 GTK+具有很好的扩展性和 支持面向对象技术。关于 GTK+的详细内容,感兴趣的读者可以参阅 GTK+的官方网站: http://www.gtk.org/,如图 1-2 所示,本书不作过多的讨论。 7
1.3 两种常用的 Linux 数据库 1.3.1 MySQL MySQL 由瑞典的 MySQL AB 公司开发,是一个中小型数据库管理系统。在 2008 年被 Sun 公司 收购,成为 Sun 旗下的产品。2009 年,Sun 又被 Oracle 公司并购。目前,MySQL 是 Oracle 公司的产品之一,其 LOGO 如图 1-3 所示。MySQL 是一种关系数据库管理系统,它将数据保 存在一个个数据表中,大大地提高了数据操作效率。MySQL 支持 SQL 语言访问数据库系统, 操作简便。MySQL 源代码遵循 GNU 通用公共许可证。源代码是开放的,利于设计者根据不同 的应用设计专用的解决方案。MySQL 广泛地应用于 Internet 上的中小型网站和嵌入式数据 库的开发。 1.3.2 SQLite SQLite 代码量特别小,大约 3 万行,是一个轻量级的小型数据库系统,占用资源少,处理 速度快,最初是为嵌入式产品而设计的。其 LOGO 如图 1-4 所示。 8
分享到:
收藏