电话簿论文

更新时间:2023-10-09 03:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

中文摘要 ..................................................... 3 英文摘要 ..................................................... 4 1 绪论 ....................................................... 5

1.1 嵌入式的发展、应用领域 ............................... 5 1.2 ARM 9概述 ........................................... 11

1.2.1 简介 .................................................... 11 1.2.2 主要特性 ................................................ 11 1.2.3 结构特点 ................................................ 11 1.2.4 优势 .................................................... 12 1.2.5 处理能力 ................................................ 12

1.3 本文研究的内容 ...................................... 13 2 需求分析 .................................................. 14

2.1 可行性分析 .......................................... 14

2.1.1 经济可行性 .............................................. 14 2.1.2 技术可行性 .............................................. 14 2.1.3 操作可行性 .............................................. 15

2.2 系统功能分析 ........................................ 15 2.3 安全性需求分析 ...................................... 16 3 系统总体设计 .............................................. 17

3.1 开发工具简介 ........................................ 17

3.1.1 Qt简介 .................................................. 17

3.1.2 SQlite .................................................. 19

3.2 相关技术知识 ........................................ 20

3.2.1 C/C++ ................................................... 20 3.2.2 Linux系统 ............................................... 22

3.3 功能模块设计 ........................................ 24 3.4 电话簿结构图 ........................................ 25 3.5 电话簿系统流程图 .................................... 26 3.6 数据库设计 .......................................... 27

3.6.1 数据库需求分析 .......................................... 27 3.6.2 数据库E-R图 ............................................ 27 3.6.3 数据表详细设计 .......................................... 28

4 系统设计与实现 ............................................ 29

4.1 用户注册子模块的设计与实现 .......................... 29 4.2 添加联系人信息子模块的设计与实现 ..................... 33 4.3 删除联系人信息子模块的设计与实现 ..................... 37 4.4 查找联系人信息子模块的设计与实现 ..................... 39 4.5 修改联系人信息子模块的设计与实现 ..................... 41 结束语 ...................................................... 42 致谢 ........................................................ 43 参考文献 .................................................... 44

基于Qt的嵌入式Linux电话簿的设计与实现

摘 要

在研究嵌入式系统的基础下,完成了基于Qt的嵌入式Linux电话薄的开发和设计。随着嵌入式系统的发展, 在Linux下使用Qt开发嵌入式应用程序是嵌入式图形用户界面(GUI)系统应用研究的重点。通过一个通讯簿程序的设计,给出了基于Qt的嵌入式Linux程序开发的关键技术,包括 QtDesigner、信号与槽机制的使用、程序主要功能代码的实现以及程序开发的整体过程。

文中介绍了Linux 操作系统具有开放的源码、高效稳定的内核、良好的开发环境以及支持多种硬件平台的特点,且具有可配置性和模块化的特点;Qt是一个面向对象的支持多操作系统平台的应用程序开发框架,它采用了一种独有的Signal2Slot(信号与槽)的对象间通信机制,以代替传统的不安全的回调技术。Qt的自由版开放了源代码,因此开发人员在Linux下使用Qt进行嵌入式系统开发是非常理想的选择。并给出了电话薄系统设计的模块及流程,运用数据库设计电话薄系统。该电话簿系统简便快捷,用途广泛。

关键词 Qt/Linux/电话簿

Design and Implementation of Embedded

Liunx Phonebook Qt-based

ABSTRACT

Based on the research of embedded system, complete the development and design of embedded Linux phone based on Qt thin. With the development of embedded system, using Qt embedded application development in Linux is the embedded graphical user interface (GUI) research on the application system. Through the design of an address book program, key technology of embedded Linux based on Qt is given, including the QtDesigner, signal and slot mechanism is used, to achieve the main function of program code and program development process.

This paper introduces the characteristics of Linux operating system with open source, highly efficient and stable kernel, good development environment and support a variety of hardware platforms, and has the characteristics of configuration and modular; Qt is an object-oriented operating system supports multi platform application development framework, which uses a the unique Signal2Slot (signals and slots) communication mechanism between objects, to replace the traditional not safe callback technology. Qt free version of open source code, so developers using Qt under the Linux embedded system development is the ideal choice. And gives the module and process design of phone book system, the database design of telephone directory system. The telephone directory system is simple and fast, versatile.

KEY WORDS Qt/Linux/Phonebook

1 绪论

1.1 嵌入式的发展、应用领域

近年来,家用电器已逐渐突破传统家电概念,演变成包括家用PC,机顶盒,HPC,无线数据通信设备,掌上电脑,PDA,视频游戏设备,webTv等所有能通过互联网交换信息的信息处理设备。家用电器信息化的关键技术就是嵌入式操作系统(embedded operating system,简称EOS)。可以预见,不久的将来,许多信息家电将具备从网上下载产品目录、自动修复故障等复杂的功能嵌入式操作系统不仅在功能上拓展了家用电器,它对家电的稳定性、安全性和易用性也都起着决定性的作用[13]。

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像平常见到的手机、PDA、电子词典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。

嵌入式系统是软件与硬件相结合的,嵌入式开发人员分两类。一类是电子工程、通信工程等偏硬件专业,主要是做硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。优势是对硬件原理非常清楚,不足之处是更擅长于定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂的应用软件等)。

另一类是软件、计算机专业,主要从事嵌入式操作系统和应用软件的开发。如果对硬件原理和接口有较好的掌握,那么就完全可以写BSP和硬件驱动程序。

1.2 ARM 9概述

1.2.1 简介

ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。以手机应用为例,2G手机只需提供语音及简单的文字短信功能,而目前的2.5G和3G手机除了提供这两项功能外,还必须提供各种其他的应用功能。主要包括:⑴无线网络设备:手机上网、电子邮件及其他定位服务等功能;⑵PDA功能:含有用户操作系统(Windows CE、Symbian OS、Linux等)及其他功能;⑶高性能功能:音频播放器、视频电话、手机游戏等。在2.5G和3G手机的应用中ARM9已经全面替代了ARM7。因为ARM9的新特性能够满足各种新需求的同时还减少了产品的研发时间和研发费用。

1.2.2 主要特性

以ARM926TEJ处理器为例,其主要特性包括:⑴最高频率200MHz;⑵16KB指令高速缓存,8KB数据高速缓存;⑶硬件JAVA加速;⑷扩展多媒体指令集结构。

ARM微处理器是一种高性能、低功耗的32位微处理器,它被广泛应用于嵌入式系统中。ARM9代表了ARM公司主流的处理器,已经在手机、机顶盒、数码相机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。

1.2.3 结构特点

以ARM9E-S为例介绍ARM9处理器的主要结构及其特点。其主要特点如下: ⑴32bit定点RISC处理器,改进型ARM/Thumb代码交织,增强性乘法器设计。支持实时(real-time)调试;

⑵片内指令和数据SRAM,而且指令和数据的存储器容量可调; ⑶片内指令和数据高速缓冲器(cache)容量从4K字节到1M字节; ⑷设置保护单元(protection unit),非常适合嵌入式应用中对存储器进行分段和

保护;

⑸采用AMBA AHB总线接口,为外设提供统一的地址和数据总线; ⑹支持外部协处理器,指令和数据总线有简单的握手信令支持;

⑺支持标准基本逻辑单元扫描测试方法学,而且支持BIST(built-in-self-test); ⑻支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。

1.2.4 优势

EP930x处理器 EP9301/EP9302是Cirrus Logic公司新推出的系列ARM9芯片中的一种极具价格优势的处理器,它的高性能设计是许多消费和工业电子产品的理想选择。EP9301拥有先进的166兆赫 ARM920T处理器(Ep9302为200兆赫),66兆赫系统总线(EP9302为100兆赫系统总线)以及支持Linux、Windows CE和其他许多嵌入式操作系统的存储器管理器单元(MMU)。ARM920T 的32位微处理器结构带有一个5阶管线,可以极低的功耗提供优异的性能。16K指令高速缓存和16K数据高速缓存可为现有的程序和数据提供零等待时间,或者也可被锁定,以确保对关键指令和数据的无延迟存取。另外Ep9302具有MaverickCrunch协处理器。这一协处理器显著提高了ARM920T的单/双精度整数及浮点数运算能力。当对数字音频和视频格式进行编码、执行工业控制运算以及其他运算密集型计算和数据处理功能时,该协处理器可使EP9302具有高速精确计算能力。

1.2.5 处理能力

新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。

(一) 时钟频率的提高:

ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时

钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。

(二) 指令周期的改进:

指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。

1.3 本文研究的内容

电话簿系统是随着社会技术不断进步及社交人脉日趋频繁的情况下而出现的新型统计记录形式。通过电话簿系统,用户不需要再去找专门的纸质记录簿进行记录、查找,因此,节省了时间,提高了效率。本文主要研究电话簿系统的设计与实现。

电话簿系统是以Linux为平台,实现用户注册、添加联系人信息、删除联系人信息、查找联系人信息、修改联系人信息等操作的系统。用户首先需要到该系统注册其信息,注册成功之后用户便可以对电话簿里的信息进行添加、查找、删除、修改等操作。对于用户而言,使用该系统有效地降低了信息收集时间、查找联系人时间、以及相应的人工成本等等,大大地提高了整个工作的效率。

本论文中,第一章介绍了嵌入式发展前景、ARM 9以及MINI 2440。第二章对开发该系统进行了必要的需求分析,包括可行性分析、系统功能分析、安全性需求分析。第三章对系统总体进行设计,其中第一节介绍了该系统所使用的开发工具,第二节介绍了与系统相关的技术知识,第三节简单设计了该系统的几个功能模块,第四节设计了电话簿系统结构图,第五节设计了电话簿系统流程图,第六节对数据库进行了详细设计。第四章对系统进行详细设计与实现,包括对每个功能模块的设计与实现。

2 需求分析

系统主要功能包括:实现添加联系人的姓名和手机号码,家庭住址和E-mail,并且连接到数据库,将信息存储到数据库文件中,添加成功弹出添加成功的对话框,对话框中的信息可以重置。消息对话框负责显示消息,调用其静态方法显示警告信息。要求在文本框中显示姓名,手机号码,家庭住址,E-mail等用户信息。添加姓名,手机号码,家庭住址,E-mail等信息到数据库中,同样需要连接SQlite数据库,用户的图形界面要求在文本框中显示姓名,手机号码,家庭住址,E-mail等用户信息。修改姓名,手机号码,家庭住址,E-mail等信息到数据库中,同样需要连接SQlite数据库,用户的图形界面要求在文本框中显示姓名,手机号码,家庭住址,E-mail等用户信息。

对已经存储的信息进行查询,由于客户的具体需求多样,为了给客户营造更多的便利,可以将软件的查询细分为按整体进行查询模糊查询和精确查询和整体查询,模糊查询允许用户用较为模糊的查询条件,比如信息的姓来进行查询,实现了用户需求的多样化。

2.1 可行性分析

2.1.1 经济可行性

估算新系统的成本效益分析,其中包括估计项目开发的成本,开发费用和今后的运行、维护费用,估计新系统将获得的效益,估算开发成本是否会高于项目预期的全部经费。并且,分析系统开发是否会对其他产品或利润带来一定影响。 2.1.2 技术可行性

根据系统功能、性能及实现系统的各项约束条件,现有的技术已较为成熟,硬

件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可

以在规定期限内完成开发。

2.1.3 操作可行性

该系统设计清晰,有良好的用户界面,操作简捷,有完善的异常处理机制和提示信息机制,用户只要经过简单的介绍就可使用,因此操作方面可行。

综上所述,本系统在经济方面、技术方面和操作方面均具备可行性,因此,可以开发本系统。

2.2 系统功能分析

电话簿系统包括用户注册、增加信息、删除信息、修改信息、查找信息、退出系统。

(1)用户注册

各个用户可以在该系统中注册相关信息。 (2)增加信息

已经注册的用户可以向该系统中添加联系人信息,包括姓名,电话号码,家庭住址,E-mail等 。

(3)删除信息

用户可以对系统中的某一个或多个联系人进行删除,删除一个联系人后,该联系人的所有信息也被删除。

(4)修改信息

用户可以对已经添加过但信息不完善的联系人进行补录信息操作。 (5)查找信息

在系统中查找某一个联系人,可以通过姓名和电话号码查找出该联系人的所有信息。

(6)退出系统

点击退出按钮可以直接退出系统。

2.3 安全性需求分析

本系统用于班级、工作单位等组织群体,可以将联系人的信息详细的保存下来,避免了手记的繁琐、易损坏、易丢失等缺点。因此,该系统的建成无疑会为广大管理者和用户提供极大的方便。

3 系统总体设计

3.1 开发工具简介

3.1.1 Qt简介

Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的Qtopia Core、快速开发工具Qt Designer和国际化工具Qt Linguist等部分[6]。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNT/Win2k、Windows 95/98平台。

基本上Qt同X-Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCL、ATL是同类型的。不过Qt还具有下列一些优点。

(1)优良的跨平台特性。

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等。

(2)面向对象。

Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。

(3)丰富的API[3]。

Qt包括多达250个以上的C++类,还提供基于模板的collections、serialization、file、I/O device、directory management和date/time类。甚至还包括正则表达式的处理功能。

(4)支持2D/3D图形渲染,支持OpenGL。 (5)大量的开发文档。

(6)XML支持。

但是真正使得Qt[7]在自由软件界的众多Widgets(如Lesstif、Gtk、EZWGL、Xforms及fltk等)中脱颖而出的还是基于Qt的重量级软件KDE。Qt虽然是商业公司的产品,但是走的却是开源路线,提供免费下载,全部都是开放源代码,非商业用途亦采用GPL的版权宣告,著名的Open Source\项目便是采用Qt开发的。

Trolltech也针对嵌入式环境推出了Qt/Embedded[1]产品。与桌面版本不同,Qt/Embedded已经直接取代了X Server及X Library等角色,将所有的功能全部整合在一起。

Qt/Embedded的开发有两种方式,一种是传统的代码编程方式,是一般程序员开发程序时所使用的方式;一种是图形编程方式,可以利用Qt—Designer[9]开发,这是一种所见即所得的方式。不论是这两种方法的哪一种,都会涉及到Qt的元对象系统。元对象系统有两个关键技术:信号和槽,以及内省,其中内省是信号和槽的基础[14]。

Qt/Embedded同样具有跨平台的特点,省掉了不少移植软件的功夫,这样的概念和Java十分接近。同时它还采用模块化设计,其最大的好处是有弹性,Qt/Embedded号称最小,可以缩到800 KB左右,最多可以长到3 MB(for Intel x86),这样的弹性也让Qt/Embedded更适合在嵌入式环境下生存。

Qt/Embedded延续了Qt在X上的强大功能,在底层摒弃了X lib,仅采用FrameBuffer作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse输入事件,底层接口支持键盘、GPM鼠标、触摸屏及用户自定义的设备等。

Qt/Embedded[2]类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面。它的类库接口完全兼容于同版本的Qt-X11,使用X下的开发工具可以直接开发基于Qt/Embedded的应用程序QUI界面。

与前两种GUI不同的是,Qt/Embedded的底层图形引擎只能采用FrameBuffer,

这就注定了它是针对高端嵌入式图形领域的应用而设计的。由于该库的代码追求面面俱到,以增加它对多种硬件设备的支持,造成了其底层代码比较凌乱,各种补丁较多的问题。Qt/Embedded的结构也过于复杂和臃肿,很难进行底层的扩充、定制和移植,尤其是用来实现signal/slot机制的moc文件。

Qt/Embedded当前已经升级为Qtopia Core和Qtopia Core,继承了Qt4的新技术,包括:高性能渲染引擎、模板容器类及基于行为的主窗口架构,改进的功能特点包括文本渲染与多线程技术。当编译Qtopia Core时,可以去除不用的功能,以最小化软件的占用空间。

MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具[10]。

根据官方最新消息,MyEclipse 2013已经正式发布。MyEclipse 2013支持HTML5、JQuery和主流的Javascript 库。随着MyEclipse 2013支持Html5,可以添加音频、视频和API元素到项目中,从而为移动设备创建复杂的Web应用程序。甚至还可以通过HTML5可视化设计器设计令人难以置信的用户界面。同时,随着MyEclipse 2013支持JQuery,可以通过插件提升性能,并添加动画效果到设计中。

3.1.2 SQlite

SQLite[11]是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款

开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

SQlite数据库的特点有如下几点:

(1)轻量级。先说它的第一个特色:轻量级。想必SQLite的作者很看重这个特性,连它的Logo都是用的“羽毛”,来显示它的轻飘飘。SQLite.和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、Linux下347KB。 (2)绿色软件。SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。单一文件。所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。 (3)跨平台/可移植性。除了支持主流操作系统,SQLite还支持许多冷门的操作系统。尤其是它对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。

(4)内存数据库(in-memory database)。现在,内存越来越便宜,很多普通PC都开始以GB为单位来衡量内存。这时候,SQLite的内存数据库特性就越发显得好用。 (5)SQLite的API不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果认为磁盘I/O有可能成为瓶颈的话,可以考虑切换为内存方式。切换时,操作SQLite的代码基本不用改,只要在开始时把文件Load到内存,结束时把内存的数据库Dump回文件就OK了。

3.2 相关技术知识

3.2.1 C/C++

C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实

电话簿系统中查询子模块结构图如图3-2所示。 查找

姓名查找 图3-2 统计查询子模块结构图

号码查3.5 电话簿系统流程图

电话簿系统总体流程图如图3-3所示。

图3-3 电话簿系统总体流程图

流程说明:用户首先需要进入到注册页面进行注册,注册后如果不点击保存,注册的内容将会无效并丢失,单击保存后,用户便可以使用电话簿进行添加信息、删除信息、修改信息、查询信息等操作。管理电话簿信息界面时,如果修改了某个联系人的信息,需要点击更改按钮,否则保存不成功。用户只需注册,便可以对电话簿系统进行查询、修改、补录等操作。

3.6 数据库设计

3.6.1 数据库需求分析

电话簿系统主要包括用户注册、添加联系人信息、删除联系人信息、查找联系人信息、修改联系人信息、退出系统等六个模块。因此,这一子系统的数据库部分主要应该设计存储用户注册信息和电话簿里面联系人所有相关信息。根据分析,所需要的表设计如下。

用户基础信息表:保存用户注册时必填项的基本信息。

联系人信息表:联系人姓名、联系人电话、联系人住址、联系人邮箱等信息保存在此表中。

3.6.2 数据库E-R图

电话簿管理系统总体E-R图如图3-4所示。 用户名 用户 管理 电话 联系 姓名 m n 密码 地址 图3-4 供应商库子系统总体E-R图 邮箱

3.6.3 数据表详细设计

通过对数据库的需求分析,得出电话簿系统所用到的数据库表。

用户注册后需要将用户注册的基本信息(此部分为必填信息)保存到用户基础信息表中,如表3-1所示。

表3-1 用户基础信息表YH_JCXX

字段名称 NAME 字段类型 VARCHAR2(32) MIMA VARCHAR2(20)

表3-2 联系人信息表LXR_JCXX

字段名称 NAME 字段类型 VARCHAR2(32) QYDH VARCHAR2(20) JYDZ VARCHAR2(500) QYDZYX VARCHAR2(50) 邮箱 家庭住址 Not Null 电话 是否可为空 Not Null 字段含义 姓名 是否为主外键 主键 Not Null 密码 是否可为空 Not Null 字段含义 用户名 是否为主外键 主键

4 系统设计与实现

根据对系统的功能分析及功能模块设计,系统的详细设计可分成5个子模块来设计,分别是用户注册子模块的设计、添加联系人信息子模块的设计、删除联系人信息子模块的设计、查找联系人信息子模块的设计、修改联系人信息子模块的设计。

4.1 用户注册子模块的设计与实现

用户注册需要输入用户名称、登录密码、再次确认密码等一系列信息,所以这部分用一个GridLayout布局,共分三行,第一行显示用户姓名,第二行为输入密码值,第三行为再次确认输入密码行。注册部分代码如下: void registerdialog::on_pbregister_clicked() {

QString comerName, comerPasswd; comerName = ui->lename->text(); comerPasswd = ui->lepassword->text();

int ok = (comerName.isEmpty())||(comerPasswd.isEmpty()); if(ok) {

QMessageBox::warning(this, tr(\错误!\账号或密码不能为空\ }

else if(ui->lepassword->text()!=ui->lerepassword->text()) {

QMessageBox::warning(this, tr(\错误!\两次输入的密码不相同\ } else

{

QFile accountpasswd(tr(\

accountpasswd.open(QIODevice::WriteOnly|QIODevice::Text); QTextStream txtOutput(&accountpasswd); txtOutput << comerName << endl; txtOutput << comerPasswd << endl; accountpasswd.close();

QMessageBox::about(this, tr(\提示!\您已成功注册了!\ ui->lbname->clear(); ui->lbpassword->clear(); ui->lerepassword->clear(); close(); } }

必填基本信息是在单击“保存”按钮时执行验证,如果没有填写或者密码错误,则给出提示,比如,用户登录如下: QString comerName, comerPasswd; comerName = ui->leaccount->text(); comerPasswd = ui->lepassword->text();

int ok = (comerName.isEmpty())||(comerPasswd.isEmpty()); if(ok) {

QMessageBox::warning(this, tr(\错误!\账号或密码不能为空\ }

本文来源:https://www.bwwdw.com/article/ubcf.html

Top