1、本科毕业论文(20 届)基于 QT 的图形用户界面设计所在学院 专业班级 通信工程 学生姓名 学号 指导教师 职称 完成日期 年 月 目 录摘要.IIIAbstract.IV第一章 概述.11.1 Linux 操作系统的产生及发展 .11.2 Linux 操作系统的特点 .21.2.1 自由开放软件 .31.2.2 真正的多任务多用户 .31.2.3 UNIX 的完整实现 .31.2.4 完全符合 POSIX 标准 .31.2.5 良好的用户界面 .41.2.6 强大的网络功能 .41.2.7 良好的可移植性 .41.2.8 设备独立性 .5第二章 QT 相关技术背景.62.1 Qt 概述 .
2、62.2 QT 发展历史 .72.3 QT 优点 .72.4 KDE 和 GNOME .82.5 QT 的安装 .102.6 QT 信号与槽机制 .112.7 元对象系统(Meta-Object System) .16第三章 系统设计与实现.183.1 需求分析 .183.2 系统功能设计 .193.3 主要的类及抽象数据类型的定义 .203.4 系统实现 .213.4.1 算法设计 .213.4.2 程序设计流程 .23第四章 系统测试.264.1 软件测试定义 .264.2 软件测试概述 .264.3 软件测试的原则 .264.4 软件测试的内容 .284.4.1 验证(verificat
3、ion) .284.4.2 确认(validation) .284.5 测试结果 .28总结.30参 考 文 献.31致 谢.32基于 QT 的图形用户界面设计摘要Linux 操作系统是现在流行的一种免费的操作系统,它完全符合 POSIX 标准,拥有强大的网络功能和良好的可移植性,系统的开发就是基于这个平台。为了用户操作的方便,系统用 QT 来实现系统的用户界面,它 是一个跨平台的 C+ 图形用户界面库,由挪威 TrollTech 公司出品。本文主要在 QT 框架设计了一个 server 端和 client 端的界面。主要是修改槽和按键,主要实现 send、connection、Close c
4、onnection、Quit 这四个按键的功能。接下来实现客户端和服务端各自的算法模块,客户端实现的是判断输入的数是否符合基本要求,输入的数必须是 0 到 9 之间的任何一个整数;而服务端实现的是将输入的数字与事先随机产生的数相比较,若相等,则在客户端输出回答正确,若不等,则提示错误,并输出正确答案。最后是 socket 通信,在 server 端和 client端各建立多个类模块来实现 socket 通信。关键字:Linux;QT;socket 通信Based on the QT graphical user interface designAbstractLinux operating s
5、ystem is now a popular free operating system, which fully comply with POSIX standards, has a strong network function and good portability, system development is based on this platform. For user convenience, the system uses QT to achieve the systems user interface, it is a cross-platform C + + graphi
6、cal user interface library, the company produced by the Norwegian TrollTech. QT framework in this paper designed a server-side and client-side interface. Was modified groove and keys, the main achievement send, connection, Close connection, Quit the function of these four buttons. Then the client an
7、d server to achieve their algorithm module, the client input to achieve is to determine whether the number of basic requirements, enter the number between 0 and 9 must be any integer; the server implementation is the input the number of randomly generated numbers with the prior comparison, if equal,
8、 the output of the client to answer correctly, if so, then an error, and output the correct answer. Finally, socket communication, the server side and client side of the class module to create multiple socket communication. Keywords: Linux, QT, socket communication第一章 概述1.1 Linux 操作系统的产生及发展在 Linux 的
9、发展历程中,Unix 和 Minix 扮演着十分重要的角色。1990 年,芬兰人Linus Torvalads 在赫乐辛基大学接触到 Unix,但是当时上机学习要排队等候很长的时间,所以 Linus 购买了自己的 PC 机,希望安装一个类似的操作系统。由于 Unix 的内核代码不容易得到,所以他安装了 Minix。Minix 是一个基于微内核技术的类似于 Unix的操作系统,是 Andrew Tanebaum 教授利用业余时间开发的用于教学的操作系统。当时,Minix 并不是完全免费的,而且 Andrew Tanebaum 教授不允许别人为 Minix 再加入其他东西,目的是为了教学的简明扼要
10、。在使用过程中,Linus 受 Minix 的启发,决定开发一个自己的操作系统。1991 年,Linus 需要一个简单的终端仿真程序来存取一个新闻组的内容,于是自己编写了一个程序来实现此目的。用 Linus 自己的话说:“在这之后,开发工作可谓一帆风顺,尽管程序代码仍然千头万绪,但此时我已有一些设备,调试也相对较以前容易了。在这一阶段我开始使用 C 语言编写代码,这使得开发工作加快了许多。与此同时,我产生了一个大胆的梦想:制作一个比 Minix 更好的 Minix。 ”基本开发工作持续两个月,直到有了一个磁盘驱动和一个小的文件系统。1991 年8 月,Linus 对外发布了一套新的操作系统,源
11、代码放在芬兰最大的 FTP 网站上,并放在名为 Linux 的目录中,Linux 也因此而得名。与 Minix 不同,Linux 不是一种公益软件,不是共享软件,它是一种自由,免费的软件!这里的“ 自由” 更多体现在版权的方面,允许使用者随意更改系统,为系统加入任何功能。也正是这种自由,使得它不断地发扬光大。1991 年 10 月 5 日,Linus 宣布了 Linux 系统的第一个正式的版本,其版本号为0.02。此版本的 Linux 能够运行 gun 的 bourne again shellbash shell 以及 gun 的编译器gcc,但是应用程序还不多。Linus 是一个完全的理想主
12、义者,他希望 Linux 是一个完全免费的操作系统。1993年,Linux 的第一个“ 产品 ”版 1.0 问世时,是按完全自由扩散版权进行扩散的。它要求所有的源码必须公开,而且任何人均不得从 Linux 交易中获利。同时,Linux 给了用户充分的自由,它从一开始就连同源代码一起提供给服务用户,允许用户进行任何更改,增加任何功能。Linus 采用了一个比 GPL 还要严格的版权许可证以确保 Linux 内核是自由的。但是,半年之后,他渐渐地发现这种纯粹自由软件的发行方式实际上限制了Linux 的发行。于是,Linus 转身了 GNU 的 GPL 版权。也正是由于采用了 GPL 版权,Linu
13、x 今天才有如此多的发行版。 (薄晓蓉,2005)要使 Linux 成为一个理想的操作系统,是一项十分巨大的工程。Linus 认识到单靠一个人的力量是不行的,它需要来自世界各地的编程专家共同努力。因此任何人想往内核中加入新的特性,只要被认为是有用的,合理的。Linus 就允许加入。就这样,Linux 在来自世界各地的众的共同协作下发展了起来。下面是 Linux 发展过程中的重要里程碑。1990 年,Linus Torvalad 首次接触 Minix;1991 年,Linus Torvalad 开始在 Minix 上编写各种驱动程序等操作系统内核组件;1991 年,Linus Torvalad
14、公开了 Linux 内核;1993 年,Linux 1.0 版发行,Linux 转向 GPL 版权协议;1994 年,Linux 的第一个商业发行版式 Slackware 问世;1996 年,美国国家标准技术局的计算机系统实验室确认 Linux 版本 1.2.13 符合POSIX 标准;1997 年,Linux 的简体中文发行版相继问世;2001 年,Linux 2.4 版内核发布;2003 年,Linux 2.6 版内核发布;1.2 Linux 操作系统的特点Linux 作为一种流行的操作系统,在市场上占有越来越大的份额,很多人特别是程序员纷纷转向 Linux,Linux 逐渐成为 Micr
15、osoft 的一个强劲对手。Linux 是类 Unix 的实现,具有强大的功能,很好地支持了各种现代编程技术,具有以下主要特点。1.2.1 自由开放软件Linux 是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码,这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了 Linux 的修改,编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让 Linux 吸收了无数程序员的精华,不断壮大。它开放源码并对外免费提供,爱好者可以按照自己的需要自由修改,复制和发布程序的源码,并公布在Internet 上。 (S.Balakrishnam ,20
16、03)1.2.2 真正的多任务多用户Linux 充分利用了 x86 CPU 的任务切换机制,实现了真正多任务,多用户环境,允许多个用户同时执行不同的程序,并且可以给紧急任务以较高的优先级。多任务是现代主要的一个特点,它指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux 系统调度每一个进程平等地使用 CPU。由于 CPU 的处理速度非常快,各个被启动执行的程序看起来好像在并行运行。事实上,从 CPU 执行一个程序中的一组指令到Linux 调度 CPU 两次运行这个程序之间有很短的时间延迟,但用户是感觉不到的。1.2.3 UNIX 的完整实现从发展的背景看,Linux 与其他操作系统
17、有着明显的区别。Linux 是从一个比较成熟的操作系统 Unix 发展而来的,Unix 上绝大多数命令都可以在 Linux 里找到并有所加强。可以认为它是 Unix 系统的一个变种,因而 Unix 的优良特点(如可靠性,稳定性,强大的网络功能,强大的数据库支持能力以及良好的开放性等)都在 Linux 上一一体现出来。同时在 Linux 的发展过程中。Linux 的用户能够直接使用与 Unix 相关的支持和帮助。1.2.4 完全符合 POSIX 标准POSIX 是基于 Unix 的第一个操作系统簇国际标准。Linux 遵循这一标准,使得Unix 下许多应用程序可以很容易地移植到 Linux 下,
18、相反也是如此。Linux 完全兼容 POSIX 1.0 标准,可以在 Linux 下通过相应的模拟器运行常见的DOS,Windows 程序。这为用户从 Windows 转到 Linux 奠定了基础。1.2.5 良好的用户界面Linux 向用户提供了两种界面:用户界面和系统调用。Linux 的传统用户界面是基于命令行的界面。即 Unix 系统的 Shell 界面,它既可以联机实时逐条输入执行,也可以存入文件后提交系统批量自动执行。Shell 有很强的设计能力,用户可以方便地用它编制程序,从而为用户扩充系统功能提供更高级的手段。可编程 Shell 是指将多条命令组合在一起,形成一个 Shell 程
19、序。这个程序可以单独运行,也可以与其他程序同时运行。Linux 的系统调用界面是供用户编程时使用的,用户可以在编程时直接使用系统提供的系统调用命令。 另外,Linux 通过使用鼠、菜单、窗口和滚动条还为用户提供了一个直观,易操作及交互性强大的图形化界面。1.2.6 强大的网络功能互联网是在 Unix 的基础上繁荣起来的,Linux 的网络功能当然不会逊色。Linux 的网络功能和其内核紧密相连,在这方面 Linux 要优于其他操作系统。在 Linux 中,用户可以轻松实现网页浏览,文件传输,远程登录等网络工作。Linux 强大的网络功能首先体现在对 Internet 的使用的支持。Linux
20、免费提供了大量支持 Internet 的软件。用户能够用 Linux 与世界上其他人进行通信。Linux 强大的网络功能还体现在文件传输能力上。用户能通过一些 Linux 命令完成内部信息或文件的传输。远程访问也是 Linux 系统提供的重要网络功能,Linux 不仅允许通过网络进行广播电台程序的传输,还为系统管理员和技术人员提供了通过网络访问其他系统的窗口。借助这各远程访问的能力,无论系统在地理上位于休息技术人员都能够有效地为多个远程系统服务。 (谢希仁,2008)Linux 不仅能够作为网络工作站使用还可以作为服务器提供 WWW、FTP、EMail等服务。1.2.7 良好的可移植性可移植性
21、是指将操作系统从一种计算机硬件平台转移到另一种计算机硬件平台后,仍然能够按其自身方式运行的能力。Linux 是一种可移植的操作系统,能够在从微型到大型的任何环境和任何平台上运行。可移植性为运行 Linux 系统的计算机平台与其他计算机进行准确而有效的通信提供了手段,而不需要另外增加特殊的通信接口。Linux可以运行在多种硬件平台上。如具有 x86、680x0、SPARC、ALPHA 等处理器的平台。同时 Linux 还支持多处理器技术、多个处理器同时工作,从而使系统性能大大的提高。此外,Linux 还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001 年 1 月发布的 Lin
22、ux 2.4 版内核已经能够完全支持 Inter64 位芯片架构。1.2.8 设备独立性设备独立性是指操作系统把所有外部设备统一当作文件看待,只要安装了它们的驱动程序,任何用户都可以像使用文件一样操纵,使用这些设备,而不必知道它们的具体形式设备独立性的关键在于内核的适应能力。其他操作系统只允许一定数量或一定种类的外部设备连接。而具有设备独立性的操作系统能够容纳任意种类及任意数量的设备,因为每一个设备老师通过与内核的专用连接独立进行访问。Linux 量具有设备独立性的操作系统,它的内核具有高度适应能力。随着更多的程序员加入 Linux 编程,会胡更多硬件设备加入到各种 Linux 内核和发行版本中。别处,由于用户可以免费得到 Linux 的内核源代码,因此用户可以修改内核源代码,以便适应新增加的外部设备。