当前位置:首页>> >>


基于QT的图形用户界面设计.rar

收藏

资源目录
    文档预览:
    编号:20181030002152943    类型:共享资源    大小:921.87KB    格式:RAR    上传时间:2018-10-30
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    25
    金币
    关 键 词:
    基于 QT 图形 用户界面 设计
    资源描述:
    QT 毕业设计1摘要Linux 操作系统是现在流行的一种免费的操作系统,它完全符合 POSIX 标准,拥有强大的网络功能和良好的可移植性,系统的开发就是基于这个平台。为了用户操作的方便,系统用 QT 来实现系统的用户界面,它 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司出品。本文主要在 QT 框架设计了一个 server 端和 client 端的界面。主要是修改槽和按键,主要实现send、 connection、Close connection、Quit 这四个按键的功能。接下来实现客户端和服务端各自的算法模块,客户端实现的是判断输入的数是否符合基本要求,输入的数必须是 0 到 9 之间的任何一个整数;而服务端实现的是将输入的数字与事先随机产生的数相比较,若相等,则在客户端输出回答正确,若不等,则提示错误,并输出正确答案。最后是 socket 通信,在 server 端和 client 端各建立多个类模块来实现 socket 通信。关键字:Linux,QT,socket 通信QT 毕业设计2AbstractLinux operating system 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 system's user interface, it is a cross-platform C + + graphical 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 and 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, 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 communicationQT 毕业设计3目 录1. 前言.............................................................................................................................................41.1 绪论............................................................................................................................................41.2 QT 与 Linux 发展现状...............................................................................................................41.2.1 Qt 概述 ..............................................................................................................................41.2.2 QT 发展历史 ....................................................................................................................51.2.3 QT 优点 ............................................................................................................................61.2.4 Linux 操作系统的产生及发展 ........................................................................................61.2.5 Linux 操作系统的特点 ....................................................................................................81.2.6 QT 信号与槽机制 ............................................................................................................81.2.7 元对象系统(Meta-Object System) ............................................................................131.2.8 KDE 和 GNOME...........................................................................................................141.3 课题研究内容………………………………………………………………………………..161.3.1 QT 的安装 ......................................................................................................................162. 系统设计与实现....................................................................................................................192.1 需求分析 ............................................................................................................................192.2 系统功能设计 ....................................................................................................................202.3 主要的类及抽象数据类型的定义 ....................................................................................212.4 系统实现 ............................................................................................................................222.4.1 算法设计 .................................................................................................................222.4.2 程序设计流程 ........................................................................................................243. 系统测试..................................................................................................................................273.1 软件测试定义 ....................................................................................................................273.2 软件测试概述 ....................................................................................................................273.3 软件测试的原则 ................................................................................................................273.4 软件测试的内容 ................................................................................................................293.4.1 验证(verification) ...................................................................................................293.4.2 确认(validation) ......................................................................................................293.5 测试结果 ............................................................................................................................294. 总结...........................................................................................................................................31参 考 文 献.................................................................................................................................32致 谢............................................................................................................................................33QT 毕业设计41.前言1.1 绪论本次毕业设计课题是我从未接触过的,是为了让我们理解什么是 QT 软件以及怎样使用 Linux 环境下的 QT 图像设计软件,为即将走上工作岗位的我们打基础,最后,让我们了解并达到熟练使用 QT 软件的要求。1.2 QT 与 Linux 发展现状1.2.1 Qt 概述Qt 是 Trolltech 公司的一个产品。 Qt 是一个多平台的 C++图形用户界面应用程序框架。它提供给应用程序开发者建立图形用户界面应用程序所需的所有功能。Qt 是完全面向对象的,它很容易扩展,并且允许真正的组件编程。自从1996 年早些时候,Qt 进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt 也是流行的 Linux 桌面环境 KDE 的基础。 (KDE 是所有主要的 Linux 发行版的一个标准组件) Qt 支持下述平台: MS/Windows - 95、98、NT 4.0、ME、和 2000Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX 和其它很多 X11 平台Macintosh - Mac OS X Embedded - 有帧缓冲(frame buffer)支持的 Linux 平台。Qt 提供了一组范围相当广泛的 C++类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。主要组成部分如下所示。Qt Designer:Qt 设计器。用来可视化地设计应用程序界面。Qt Linguist:Qt 语言学家。用来翻译应用程序。以此提供对多种语言的支持。QT 毕业设计5Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的 Makefile。Qt Assistant:关于 Qt 的帮助文件。类似于 MSDN。可以快速地发现你所需要的帮助。moc:元对象编译器。uic:用户界面编译器。在程序编译时被自动调用,通过 ui_*.h 文件生成应用程序界面。qembed:转换数据,比如,将图片转换为 C++代码。Linux 下 Qt 开发环境搭建1.2.2 QT 发展历史Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司出品,目前包括 Qt, 基于 Framebuffer 的 Qt Embedded,快速开发工具 Qt Designer,国际化工具 Qt Linguist 等部分 Qt 支持所有 Unix 系统,当然也包括 Linux,还支持 WinNT/Win2k,Win95/98 平台。 (蔡志明,2008)Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 Qt 了,Qt 的第一个商业版本于 1995 年推出然后 Qt 的发展就很快了,下面是 Qt 发展史上的一些里程碑:1996 Oct KDE 组织成立1998 Apr 05 Trolltech 的程序员在 5 天之内将 Netscape5.0 从 Motif 移植到 Qt 上1998 Apr 08 KDE Free Qt 基金会成立1998 Jul 09 Qt 1.40 发布1998 Jul 12 KDE 1.0 发布1999 Mar 04 QPL 1.0 发布1999 Mar 12 Qt 1.44 发布1999 Jun 25 Qt 2.0 发布1999 Sep 13 KDE 1.1.2 发布2000 Mar 20 嵌入式 Qt 发布2000 Sep 06 Qt 2.2 发布QT 毕业设计62000 Oct 05 Qt 2.2.1 发布2000 Oct 30 Qt/Embedded 开始使用 GPL 宣言2000 Sep 04 Qt free edition 开始使用 GPL 1.2.3 QT 优点基本上,Qt 同 X Window 上的 Motif、Openwin、GTK 等图形界面库和 Windows 台上的 MFC、OWL、VCL、ATL 是同类型的东西,但是 Qt 具有下列优点。优良的跨平台特性Qt 支持下列操作系统: Microsoft Windows 95/98、 Microsoft Windows NT、Linux、 Solaris、SunOS 、HP-UX、Digital UNIX (OSF/1, Tru64)、 Irix,FreeBSD 、BSD/OS、 SCO、AIX、 OS390、QNX 等等。面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替callback,这使得各个元件之间的协同工作变得十分简单。丰富的 API Qt 包括多达 250 个以上的 C++ 类,还替供基于模板的collectionsserialization、 file、I/O device、 directory management、 date/time 类。甚至还包括正则表达式的处理功能。(1) 支持 2D/3D 图形渲染,支持 OpenGL。(2) 大量的开发文档。(3) XML 支持。1.2.4 Linux 操作系统的产生及发展在 Linux 的发展历程中,Unix 和 Minix 扮演着十分重要的角色。1990 年,芬兰人 Linus Torvalads 在赫乐辛基大学接触到 Unix,但是当时上机学习要排队等候很长的时间,所以 Linus 购买了自己的 PC 机,希望安装一个类似的操作系统。由于 Unix 的内核代码不容易得到,所以他安装了 Minix。Minix 是一个基于微内核技术的类似于 Unix 的操作系统,是 Andrew Tanebaum 教授利用业余QT 毕业设计7时间开发的用于教学的操作系统。当时,Minix 并不是完全免费的,而且Andrew Tanebaum 教授不允许别人为 Minix 再加入其他东西,目的是为了教学的简明扼要。在使用过程中,Linus 受 Minix 的启发,决定开发一个自己的操作系统。1991 年,Linus 需要一个简单的终端仿真程序来存取一个新闻组的内容,于是自己编写了一个程序来实现此目的。用 Linus 自己的话说: “在这之后,开发工作可谓一帆风顺,尽管程序代码仍然千头万绪,但此时我已有一些设备,调试也相对较以前容易了。在这一阶段我开始使用 C 语言编写代码,这使得开发工作加快了许多。与此同时,我产生了一个大胆的梦想:制作一个比 Minix 更好的 Minix。 ”基本开发工作持续两个月,直到有了一个磁盘驱动和一个小的文件系统。1991 年 8 月,Linus 对外发布了一套新的操作系统,源代码放在芬兰最大的FTP 网站上,并放在名为 Linux 的目录中,Linux 也因此而得名。与 Minix 不同,Linux 不是一种公益软件,不是共享软件,它是一种自由,免费的软件!这里的“ 自由 ”更多体现在版权的方面,允许使用者随意更改系统,为系统加入任何功能。也正是这种自由,使得它不断地发扬光大。1991 年 10 月 5 日,Linus 宣布了 Linux 系统的第一个正式的版本,其版本号为 0.02。此版本的 Linux 能够运行 gun 的 bourne again shell—bash shell 以及gun 的编译器—gcc,但是应用程序还不多。Linus 是一个完全的理想主义者,他希望 Linux 是一个完全免费的操作系统。1993 年,Linux 的第一个“产品” 版 1.0 问世时,是按完全自由扩散版权进行扩散的。它要求所有的源码必须公开,而且任何人均不得从 Linux 交易中获利。同时,Linux 给了用户充分的自由,它从一开始就连同源代码一起提供给服务用户,允许用户进行任何更改,增加任何功能。Linus 采用了一个比 GPL 还要严格的版权许可证以确保 Linux 内核是自由的。但是,半年之后,他渐渐地发现这种纯粹自由软件的发行方式实际上限制了 Linux 的发行。于是,Linus 转身了GNU 的 GPL 版权。也正是由于采用了 GPL 版权, Linux 今天才有如此多的发行版。 (薄晓蓉,2005)要使 Linux 成为一个理想的操作系统,是一项十分巨大的工程。Linus 认识QT 毕业设计8到单靠一个人的力量是不行的,它需要来自世界各地的编程专家共同努力。因此任何人想往内核中加入新的特性,只要被认为是有用的,合理的。Linus 就允许加入。就这样,Linux 在来自世界各地的众的共同协作下发展了起来。下面是 Linux 发展过程中的重要里程碑。1990 年,Linus Torvalad 首次接触 Minix;1991 年,Linus Torvalad 开始在 Minix 上编写各种驱动程序等操作系统内核组件;1991 年,Linus Torvalad 公开了 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.5 Linux 操作系统的特点Linux 作为一种流行的操作系统,在市场上占有越来越大的份额,很多人特别是程序员纷纷转向 Linux,Linux 逐渐成为 Microsoft 的一个强劲对手。Linux 是类 Unix 的实现,具有强大的功能,很好地支持了各种现代编程技术,具有以下主要特点。自由开放软件,真正的多任务多用户,UNIX 的完整实现,完全符合 POSIX 标准,良好的用户界面,强大的网络功能,良好的可移植性,设备独立性。1.2.6 QT 信号与槽机制信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。信号和槽是 QT 自行定义的一种通信机制,它独立于标准的 C/C++语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的 QT 工具,该工具是一个 C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。QT 毕业设计9在我们所熟知的很多 GUI 工具包中,窗口小部件(widget)都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。 信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生 core dumps。所有从 QObject 或其子类(例如 Qwidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit) 出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。(trolltech,2005)你可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构造了一个强大的部件编程机制。 (Jasmin Blanchette,1998 )当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。只有 定义过这个信号的类及其派生类能够发射这个信号。当一个信号被发射时,与其相关联的槽将被立刻执行,就象一个正常的函数调用一样。信号-槽机制完全独立于任何 GUI 事件循环。只有当所有的槽返回以后发射函数(emit)才返回。 如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。信号的声明是在头文件中进行的,QT 的 signals 关键字指出进入了信号声明区,随后即可声明自己的信号。槽是普通的 C++成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值。既然槽是普通的成员函数,因此与其它的函数一样,它们也有存取权限。槽的存取权限决定了谁能够与其相关联。同普通的 C++成员函数一样,槽函数QT 毕业设计10也分为三种类型,即 public slots、private slots 和 protected slots。public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信息能够正确的传递。 protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。 private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常紧密的类。 槽也能够声明为虚函数,这也是非常有用的。槽的声明也是在头文件中进行的。通过调用 QObject 对象的 connect 函数来将某个对象的信号与另外一个对象的槽函数相关联,这样当发射者发射信号时,接收者的槽函数将被调用。该函数的定义如下:bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member ) [static] 。这个函数的作用就是将发射者 sender 对象中的信号 signal 与接收者 receiver中的 member 槽函数联系起来。当指定信号 signal 时必须使用 QT 的宏SIGNAL(),当指定槽函数时必须使用宏 SLOT()。如果发射者与接收者属于同一个对象的话,那么在 connect 调用中接收者参数可以省略。元对象编译器 moc(meta object compiler)对 C++文件中的类声明进行分析并产生用于初始化元的 C++代码,元对象包含全部信号和槽的名字以及指向这些函数的指针。moc 读 C++源文件,如果发现有 Q_OBJECT 宏声明的类,它就会生成另外一个 C++源文件,这个新生成的文件中包含有该类的元对象代码。例如,假设我们有一个头文件 mysignal.h,在这个文件中包含有信号或槽的声明,那么在编译之前 moc 工具就会根据该文件自动生成一个名为 mysignal.moc.h 的 C++源文件并将其提交给编译器;类似地,对应于 mysignal.cpp 文件 moc 工具将自动生成一个名为 mysignal.moc.cpp 文件提交给编译器。元对象代码是 signal/slot 机制所必须的。用 moc 产生的 C++源文件必须与
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于QT的图形用户界面设计.rar
    链接地址:http://www.gold-doc.com/p-254740.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    [email protected] 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开