




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Arm-Linux平台的模拟手机设计摘要随着社会的发展,人们的通讯方式越来越多,不仅仅是写信,发邮件,上网。手机的流行已成为了一种趋势。同时手机的普及也给人们的生活带来了很多的便利,如:可以随时随地连接英特网,可以随时和朋友,亲人联系,同时还能拍照,听歌,看文档。同时也兼有计算器,手表,相机的功能。基于Arm-Linux平台的模拟手机设计从理论上来说具备基本的手机功能,能进行通话,电话本管理,信息管理,MP3、MP4功能,具备记事本,计算器,图片查看,号码归属地查询等小功能,同是还能连接英特网,实现了简单的游戏,特别的是此系统能实现跨平台运行,可以交叉编译。如果能烧入开发板上面,将能够和手机媲美。同时它能运行在ARM9,ARM11等开发板上面,进行一系列的模拟实验。矚慫润厲钐瘗睞枥庑赖。关键词:Arm-Linux平台;模拟手机设计;ARM9;ARM11AbstractWith the development of society, peoples communication mode is more and more, just write, email, Internet access. The popular mobile phone has become a trend. Meanwhile the popularity of cell phone also give people life brought a lot of convenience, such as: connect the Internet can at any time anywhere, can at any time and friends, family contact, but also photos, music, see documents. Also with calculator, watches, the camera functions.聞創沟燴鐺險爱氇谴净。Based on the Arm - Linux platform from theory for analog phones have the basic design of the mobile communication function, can this management, telephone, information management, MP3, MP4 functionality, have notepad, calculator, picture viewer, number where inquiry on small function, is also can connect with the Internet, realized simple game, special is the system can realize cross-platform operation, can cross-compiling. If can spread on development board, will be able to and cell phone rival. At the same time it can run on ARM9, such as ARM11 above development board, carries on a series of simulation experiment.残骛楼諍锩瀨濟溆塹籟。Key words: arm-linux platform; analog phone design; arm9; arm11酽锕极額閉镇桧猪訣锥。II目 录摘要I彈贸摄尔霁毙攬砖卤庑。AbstractII謀荞抟箧飆鐸怼类蒋薔。第1章绪论1厦礴恳蹒骈時盡继價骚。1.1引言1茕桢广鳓鯡选块网羈泪。1.2课题背景1鹅娅尽損鹌惨歷茏鴛賴。1.3研究方法21.4论文结构说明2第2章需求分析4籟丛妈羥为贍偾蛏练淨。2.1系统功能分析4預頌圣鉉儐歲龈讶骅籴。2.2可行性分析4渗釤呛俨匀谔鱉调硯錦。第3章概要设计63.1系统目标63.2系统模块图63.3系统功能流程图7第4章数据库设计84.1数据库需求分析84.2数据库概要设计84.3数据库物理设计10铙誅卧泻噦圣骋贶頂廡。第5章系统详细设计11擁締凤袜备訊顎轮烂蔷。5.1登录详细设计11贓熱俣阃歲匱阊邺镓騷。5.2通讯管理功能详细设计13坛摶乡囂忏蒌鍥铃氈淚。5.3情景设置14蜡變黲癟報伥铉锚鈰赘。5.4多媒体17買鲷鴯譖昙膚遙闫撷凄。5.5小工具18綾镝鯛駕櫬鹕踪韦辚糴。5.6英特网,地图搜索23驅踬髏彦浃绥譎饴憂锦。5.7娱乐235.8我的收藏25猫虿驢绘燈鮒诛髅貺庑。5.9客户服务26锹籁饗迳琐筆襖鸥娅薔。第6章环境搭建及调试28構氽頑黉碩饨荠龈话骛。6.1开发环境28輒峄陽檉簖疖網儂號泶。6.2环境的配置28尧侧閆繭絳闕绚勵蜆贅。第7章开发技术、平台简介317.1开发技术简介317.2开发平台简介33识饒鎂錕缢灩筧嚌俨淒。第8章总结及展望35主要参考资料36凍鈹鋨劳臘锴痫婦胫籴。致谢37恥諤銪灭萦欢煬鞏鹜錦。基于Arm-Linux平台的模拟手机设计 第1章 绪论 第1章 绪论1.1 引言手机的质量是一个手机厂商的生命线,如果没有一个让人们用着放心,用着满意的手机质量,那么这个手机厂商将无立身之地。当然这里所说的手机质量包括硬件和软件两方面。因此,提高手机的质量是一个手机厂商的重中之重。基于Arm-Linux平台的模拟手机设计从理论上来说具备手机的基本功能。同时此系统能实现跨平台运行,可以交叉编译。同是也能在开发板上进行一系列的模拟实验。鯊腎鑰诎褳鉀沩懼統庫。1.2 课题背景1.2.1 国外研究现状目前,全球手机厂商的竞争已是异常的激烈,然而拥有一个好的手机操作系统已成为各大厂商的首选。根据市场调查公司Ovum表示,手机制造商陆续采用含有先进的图形与影音处理能力 高效能硬件,逐渐从ARM-11系列处理器过度到ARM Cortex A8,且Qualcomm(高通)Snapdragon芯片也正在紧锣密鼓的筹备中。相对于Symbian和Windows Mobile,现状登场的Android要更显年轻。Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance开发。它采用了软件堆层的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分硕癘鄴颃诌攆檸攜驤蔹。1.2.2 国内研究现状国内手机市场热点频涌,产销量迈上新的台阶。彩屏手机、彩信手机、智能手机已逐渐成为市场主流,高像素照相手机、运营商定制手机、双模双卡手机开始纷纷登台亮相。与此同时,国内手机产销量经过二季度的短暂徘徊,三季度又出现恢复性增长,目前已占得全球三分天下。阌擻輳嬪諫迁择楨秘騖。随着国外手机系统的出现,中国移动OMS智能系统应运而生,OMS是中国移动深度定制的手机操作系统,该系统是基于Linux内核、采用Android源代码进行重新开发的一套系统,在用户界面以及功能上与此前的Google手机有很大不同。在功能方面,OMS深度集合了中国移动现有的各项业务,包括飞信、快讯、139邮箱、移动梦网等数据服务。在用户体验方面,OMS同样也汲取了iPhone,Android,Black Berry等多种移动终端的优势,并结合中国人自己的行为习惯和喜好方式,设计出了完全区别于Android的用户界面,其最大的特点就是采用大屏触摸式设计风格。氬嚕躑竄贸恳彈瀘颔澩。1.3 研究方法广泛搜集研究资料,参考国内手机系统设计的成果,分析他人的设计方法和思想,对该系统的工作模式及其体系结构进行探讨,对系统进行概要设计。认真请教导师,在导师的指导下利用在大学所学的知识认真仔细做好需求分析,做好详细设计的准备。应用相关的理论、技术编码,如Sqlite数据库理论,C+语法,Qt界面布局,交叉编译。最后运用构建知识将程序移植到mini2440上进行测试,并优化性能。开发过程中主要用到的开发工具有QT Creator4.6,ARM9,超级终端,设备驱动等。该系统预期实现的功能有:登陆功能,通信录管理,通话记录,信息服务,情景设置,多媒体,小工具,娱乐,客户服务,谷歌地图。釷鹆資贏車贖孙滅獅赘。1.4 论文结构说明本文从软件开发的角度并结合详细的图示和相关关键代码阐述了关于开发基于Arm-Linux平台的模拟手机设计的背景、意义、系统的需求分析,概要设计,详细设计,并对数据库进行了分析,从数据库的用户需求,概要设计,E-R图设计,逻辑设计,物理设计,都进行了详细的阐述。一个好的软件开发过程是漫长的,本系统从设计到完成编码用了差不多三个月的时间,由于本人软件工程知识理解有限,难免会在使用的过程中产生开发过程中隐藏的问题,本文提供了该软件的基本运行,测试环境的搭建和调试方法,并提供了相关说明。由于作者水平和经验的限制,加之编写时间仓促,本文可能存在不当之处,敬请批评指正。怂阐譜鯪迳導嘯畫長凉。39基于Arm-Linux平台的模拟手机设计 第2章 需求分析 第2章 需求分析2.1 系统功能分析基于Arm-Linux平台的模拟手机设计系统统过给定的密码登录页面进行操作。登录判定上首次基于数据库验证。使用者可以在登录成功后对密码进行修改,并同时可以选择进行一系列操作,通话记录,信息服务,情景设置,多媒体,小工具,娱乐,客户服务。谚辞調担鈧谄动禪泻類。该系统的功能需求可归纳为:1. 用户通过密码进入主功能模块;2. 实现电话薄的基本管理;3. 记录本地的通话情况;4. 五子棋小游戏的简单实现;5. 背景,语言,时间的简单设置;6. 媒体播放器的简单实现;7. 计算器,记事本,系统实时监控,号码归属地查询,货币兑换等小工具的使用;8. 浏览器的实现;9. 简单客户信息的查看;2.2 可行性分析2.2.1 技术可行性分析根据自己四年所掌握的知识,熟练掌握的语言有:C , C+,Linux C,同事具备对数据库的基本使用能力,能用Sql, Mysql, Sqlite,进行程序开发。同时,对嵌入式进行过系统的学习,懂得汇编语言,交叉编译,文件系统配置,驱动移植,并且能熟练运用QT进行程序开发。嘰觐詿缧铴嗫偽純铪锩。QT 是一个跨平台应用程序和 UI 开发框架。使用 QT 您只要一次性开发应用程序,无需重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序,Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根据官方描述,Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务熒绐譏钲鏌觶鷹緇機库。综上所述,技术上开发条件具备。2.2.2 经济可行性分析本系统的开发成本包括开发时间、软件、硬件。开发时间为三个月,由本人利用毕业设计的时间完成。软件成本为现有软件,已经网上找到的免费开发工具。完全可以胜任开发要求。硬件成本是已有的一台笔记本电脑,相关现有的外围设备,当然,演示的时候可能不能进行实践的操作。开发本系统的经济条件基本具备,可以开发。基于Arm-Linux平台的模拟手机设计 第3章概要设计 第3章 概要设计3.1 系统目标基于Arm-Linux平台的模拟手机设计,能进行简单的手机功能,通过这个系统,能进行通话,休闲,娱乐,学习等基本功能。鶼渍螻偉阅劍鲰腎邏蘞。3.2 系统模块图通过需求分析可得到模拟手机设计系统的模块由九大部分构成,它们分别是登录模块、通讯管理、通话记录、信息服务、情景设置、多媒体、小工具、娱乐、客户服务。功能模块图如图3.1所示。纣忧蔣氳頑莶驅藥悯骛。模拟手机互联网信息服务情景设置多 媒体小工具登陆通讯管理娱乐客户服务图 3.1 系统模块图3.3 系统功能流程图开 始开 机成功失败互联网信息服务情景设置多 媒体小工具通讯管理娱乐客户服务图 3.2 系统功能流程图基于Arm-Linux平台的模拟手机设计 第4章数据库设计 第4章 数据库设计4.1 数据库需求分析数据库需求分析就是要了解在这个系统中,用户需要查询、更新、删除和保存哪些数据,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础8。颖刍莖蛺饽亿顿裊赔泷。4.2 数据库概要设计概念设计是整个数据库设计的关键。它的目的是将需求说明书中关于数据的需求,综合为一个统一的DBMS概念模型。首先根据单个应用的需求,画出能反映每一应用需求的局部E-R模型。然后将这些E-R模型图合并起来,消除冗余和可能存在的矛盾,得出系统总体的E-R模型。濫驂膽閉驟羥闈詔寢賻。E-R图(Entity-Relationship图,实体-关系图)是由P.P.Chen于1976年首先提出。它提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。E-R数据模型问世后,经历了许多修改和扩充。銚銻縵哜鳗鸿锓謎諏涼。E-R模型的构成成分是实体集、属性和联系集,其表示方法如下:1. 实体集用矩形框表示,矩形框内写上实体名。2. 实体的属性用椭圆框表示,框内写上属性名,并用无向边与其实体集相连。3. 实体间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即11、1M或MM。挤貼綬电麥结鈺贖哓类。本系统中的实体以及实体的属性如图4.1-图4.4所基于Arm-Linux平台的模拟手机设计 第4章数据库设计 用 户 IDPass图4.1 用户通讯者IDNamePhoneNInfo图4.2 通讯人号码ID索引归属地图4.3 号码短信IDRSName号码内容图4.4 短信4.3 数据库物理设计本系统采用QT里面自带的一种小数据库,不需要另外再去安装。具体部分实现如下:QSqlDatabase db; /创建数据库对象赔荊紳谘侖驟辽輩袜錈。 db = QSqlDatabase:addDatabase(QSQLITE); /设置数炤库类型塤礙籟馐决穩賽釙冊庫。db.setDatabaseName(info.db); /设置数据库的名字裊樣祕廬廂颤谚鍘羋蔺。QSqlQuery query; /声明一个对象仓嫗盤紲嘱珑詁鍬齊驁。 query.exec(create table password(id int primary key, pass varchar(6);绽萬璉轆娛閬蛏鬮绾瀧。 /建表query.exec(insert into password values(1, 123); /插入数据骁顾燁鶚巯瀆蕪領鲡赙。query1.exec(select * from password); /查询瑣钋濺暧惲锟缟馭篩凉。stModel = new QSqlTableModel(this, db); /创建数据模型鎦诗涇艳损楼紲鯗餳類。 stModel-setTable(peoples); /模型关联students表栉缏歐锄棗鈕种鵑瑶锬。stModel-setEditStrategy(QSqlTableModel:OnManualSubmit); 辔烨棟剛殓攬瑤丽阄应。 /设置模型编辑策略 stModel-select(); /执行默认查询峴扬斕滾澗辐滠兴渙藺。ui-viewInfo-setModel(stModel); / viewInfo 关联模型詩叁撻訥烬忧毀厉鋨骜。stModel-insertRow(dwMapper-currentIndex() + 1); /增则鯤愜韋瘓賈晖园栋泷。stModel-removeRow(dwMapper-currentIndex(); /删除胀鏝彈奥秘孫戶孪钇賻。dwMapper-submit();stModel-submitAll(); /修改鳃躋峽祷紉诵帮废掃減。基于Arm-Linux平台的模拟手机设计 第5章系统详细设计 第5章 系统详细设计5.1 登录详细设计5.1.1 登录流程本系统登录流程如图5.1所示。开始输入PIN验证登陆 成功YN图5.1登录流程5.1.2 登录页面登录代码设计/密码匹配 while(query1.next() if(strcmp(query1.value(1).toString().toLocal8Bit().data(), pass.toAscii().data() = 0)稟虛嬪赈维哜妝扩踴粜。 spass = ; pass = ;Menu *m = new Menu(this); this-hide(); m-setWindowFlags(Qt:Window|Qt:FramelessWindowHint);陽簍埡鲑罷規呜旧岿錟。 m-show(); else QMessageBox:warning(this, Error, 密码不对!); return;/将密码转换成*显示if(strlen(pass.toAscii().data() - strlen(ui-lineEdit-text().toAscii().data()!= 0)沩氣嘮戇苌鑿鑿槠谔應。 for(int num = 0; num lineEdit-text().toAscii().data(); num+)钡嵐縣緱虜荣产涛團蔺。 if(ui-lineEdit-text().toAscii().data()num != *)懨俠劑鈍触乐鹇烬觶騮。 pass.append(ui-lineEdit-text().toAscii().data()num);謾饱兗争詣繚鮐癞别瀘。 spass.append(*); ui-lineEdit-setText(spass); 登陆界面: 图5.2 登录设计5.2 通讯录管理功能详细设计5.2.1 通讯录管理的流程图显示所有人显示成功YN增加查询删除姓名查找号码查找图5.3 通讯录管理流程5.2.2 通讯录管理的设计 部分代码设计: QString name = ui-lineEditName-text();QSqlDatabase db;if(!db.isOpen() db = QSqlDatabase:addDatabase(QSQLITE); / 设置数据库类型呙铉們欤谦鸪饺竞荡赚。 db.setDatabaseName(info.db); / 设置数据库名 if(!db.open() QMessageBox:warning(this, Error, 打开失败!); return; QSqlQuery query;if(!query.exec(select * from peoples) QMessageBox:information(this, 提示, query.lastError().text();莹谐龌蕲賞组靄绉嚴减。 while(query.next() query.value(0).toString().toLocal8Bit().data(); if( !strcmp(name, query.value(1).toString().toLocal8Bit().data() )麸肃鹏镟轿騍镣缚縟糶。 ui-lineEditNum-setText(query.value(2).toString();納畴鳗吶鄖禎銣腻鰲锬。 ui-lineEditOther-setText(query.value(3).toString();風撵鲔貓铁频钙蓟纠庙。 flag = false; break; 通讯录管理的部分界面: 图5.4 通讯录管理页面设计5.3 情景设置5.3.1 语言设置目前设置了2中语言的转换:中、英文,将来可能添加多语言。语言设置的过程是:1. 在工程中 .pro 中添加 translations = MyPhone_ch.ts (ts前面的名字可以不同);灭嗳骇諗鋅猎輛觏馊藹。2. 通过终端进入项目的目录 执行lupdate .pro 命令 (这时,MyPhone_ch.ts中内容更新了,被tr()标注的字符串被提取出来了);铹鸝饷飾镡閌赀诨癱骝。3. 执行 linguistMyPhone_ch.ts,进行编辑,对提取的每个串进行翻译,也就是键入对应字串。在左边面板中列出所有可供翻译的字串,单击之,右边编辑区会显示出来;攙閿频嵘陣澇諗谴隴泸。4. 在“File”菜单下,单击Release项,这会生成我们需要的.qm文件; 语言设置的部分代码:QTranslator translator(this); /声明一个翻译类的对象趕輾雏纨颗锊讨跃满賺。translator.load(Myphone_ch,.); /将配置文件加载进来夹覡闾辁駁档驀迁锬減。qApp-installTranslator(&translator); /在所有界面插入配置文件视絀镘鸸鲚鐘脑钧欖粝。语言设置的界面: 图5.5 语言切换界面 5.3.2 背景设置背景设置就是皮肤设置,借用css 的灵感, Qt也支持Qt自己的css, 简称qss。同css 相似,qss的主要功能与最终目的都是能使界面的表现与界面的元素分离,即质与形的分离,就如同一个人可以在不同的时候穿上不同的衣服一样,css机制的引入,使得设计一种皮肤与界面控件分离的软件成为可能,应用程序也能像web界面那样随意地改变外观。详细内容请参考:/ 。偽澀锟攢鴛擋緬铹鈞錠。Qss的简单使用: QFile qss1(test.qss);qss1.open(QFile:ReadOnly);qApp-setStyleSheet(qss1.readAll(); qss1.close();5.3.3 日期查询 图5.6 日期查询5.3.4 开机PIN密码的设置 图5.7 PIN的设置5.4 多媒体5.4.1 本系统支持视频,音频的播放,具体部分实现如下:mObject = new Phonon:MediaObject(this); aOutput = new Phonon:AudioOutput(Phonon:MusicCategory, this); /音频緦徑铫膾龋轿级镗挢廟。 vWidget = new Phonon:VideoWidget(ui-frameVideo); /视频騅憑钶銘侥张礫阵轸蔼。 vWidget-setAspectRatio(Phonon:VideoWidget:AspectRatioAuto); /让解码器找到长宽比从媒体文件自动(这是默认的)疠骐錾农剎貯狱颢幗騮。 vWidget-setScaleMode(Phonon:VideoWidget:FitInView); /这个录像将安装角度来填补保持长宽比镞锊过润启婭澗骆讕瀘。 sSlider = new Phonon:SeekSlider(ui-frameProcessVideo);榿贰轲誊壟该槛鲻垲赛。 vSlider = new Phonon:VolumeSlider(ui-frameProcessListen); /声音进度条邁茑赚陉宾呗擷鹪讼凑。 Phonon:createPath(mObject, aOutput); Phonon:createPath(mObject, vWidget); /关联视频与 mObject对象嵝硖贪塒廩袞悯倉華糲。 sSlider-setMediaObject(mObject); /播放进度条与播放位置关联该栎谖碼戆沖巋鳧薩锭。 vSlider-setAudioOutput(aOutput); /声音进度条与音频关联劇妆诨貰攖苹埘呂仑庙。 sSlider-setMinimumWidth(ui-frameProcessVideo-width(); /设置长度 播放进度条臠龍讹驄桠业變墊罗蘄。 vSlider-setMinimumWidth(ui-frameProcessListen-width(); /设置长度 音量大小进度条鰻順褛悦漚縫冁屜鸭骞。5.4.2 实现的界面: 图5.8 视频播放5.5 小工具5.5.1 计算器支持普通的数学运算功能,能进行 +,-, *、 %。同时还能进行二进制,十进制,十六进制的转换。计算器的部分代码如下:/以下是转换为二进制的部分代码:if(T_D_H = 10) /当前是十进制 number = ui-txtEdit-text().toDouble(); number1 = (int)number; pnumber = number - number1; while(number1) listt+= number1%2; number1 /= 2; t-; while(t != -1) switch(listt) t-; if(pnumber != 0.0) /当前的十进制有小数部分 int pn = 3; temp.append(.); while(pn-) else if(T_D_H = 16) /当前是十六进制 strcpy(clist,ui-txtEdit-text().toLocal8Bit().data();穑釓虚绺滟鳗絲懷紓泺。 for(int t = 0 ; t txtEdit-setText(temp);T_D_H = 2;/以下是转换为十六进制的部分代码if(T_D_H = 2) else if(T_D_H = 10) j = 1; num = int(ui-txtEdit-text().toLocal8Bit().toDouble();隶誆荧鉴獫纲鴣攣駘賽。 for(i = 0; ;i+) if(num % 16 9) switch(num%16) else clisti = (num % 16) + 40; num /= 16; if(num 9) switch(num) else clist+i = num + 40; break; QString hlist; for(;i -1;i-) hlist.append(clisti); ui-txtEdit-setText(hlist);T_D_H = 16; 计算器的运行界面: 图5.9 计算器5.5.2 系统监控这部分主要是模拟监控系统当前的参数,比如温度,信号强弱。部分代码如下:/设置画布背景ui-frameShow-setMaximumSize(VIEW_WIDTH+20,VIEW_HEIGHT+20);浹繢腻叢着駕骠構砀湊。 ui-frameShow-setMinimumSize(VIEW_WIDTH+20,VIEW_HEIGHT+20);鈀燭罚櫝箋礱颼畢韫粝。scene = new QGraphicsScene(this);sceneX = new QGraphicsScene(this);sceneY = new QGraphicsScene(this);ui-gvShow-setScene(scene);ui-gvShowX-setScene(sceneX);ui-gvShowY-setScene(sceneY);/设置画笔QPen pen(Qt:blue);sceneX-addLine(-VIEW_WIDTH/2+10, 10, VIEW_WIDTH/2-40, 10, pen);惬執缉蘿绅颀阳灣熗鍵。sceneY-addLine(10,-VIEW_HEIGHT/2+30,10,VIEW_HEIGHT/2-40, pen);贞廈给鏌綞牵鎮獵鎦龐。/计时器timer = new QTimer(this);connect(timer,SIGNAL(timeout(),this,SLOT(DrawInfo(); /通过槽函数触发嚌鲭级厨胀鑲铟礦毁蕲。timer-start(1000); /更新时间为1秒薊镔竖牍熒浹醬籬铃騫。timer1 = new QTimer(this);connect(timer,SIGNAL(timeout(),this,SLOT(DrawInfo1();齡践砚语蜗铸转絹攤濼。timer1-start(1000);运行效果图: 图5.10 系统监控5.5.3 记事本使用者可以查看当前目录下的文本文件。部分代码如下: /将当前的工作目录放到赋值到buff path = getcwd(buff, sizeof(buff); QDir dir; dir.setPath(path + /mynotebook/); dir.cd(.); QStringList str; str listWidget-clear();/为了文件的读写提供接口 QTextStream in(&pathfile); QString lines = in.readAll(); pathfile.close(); Readnotebook *rn = new Readnotebook(this); this-close(); rn-setWindowFlags(Qt:Window | Qt:FramelessWindowHint);饪箩狞屬诺釙诬苧径凛。 rn-show();rn-showText(filename, lines);记事本界面: 图5.11 记事本5.5.4 归属地查询,货币兑换通过对数据库里面的内容进行操作,查询出当前输入的号码的归属地。货币兑换完成的是人民币和美元,欧元的转换。烴毙潜籬賢擔視蠶贲粵。5.6 英特网,地图搜索实现了互联网功能,也可以说是一个简单的浏览器。通过Qt下的 QWebView 类来加载一个地址。运行界面: 图5.12 浏览器5.7 娱乐 实现了简单的五子棋游戏(五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性)。鋝岂涛軌跃轮莳講嫗键。 实现的部分代码:/人机对战if(arrij = 0) arrij = 1; /白方下了一个子 item-setIcon(QIcon(QPixmap(:/pic/b.png); ui-tableWidget-setItem(i, j, item); count+; ui-lineEdit-setText(QString:number(count); numrand = qrand()% 8; if( pset(numrand) = true) arrtempitempj = 2; /黑方下了一个子 item1-setIcon(QIcon(QPixmap(:/pic/h.png); ui-tableWidget-setItem(tempi, tempj, item1); else ui-lineEdit-setText(tr(ERROR); winjudge();/人人对战 if(who = true) if(arrij = 0) who = false; arrij = 1; /白方下了一个子 item-setIcon(QIcon(QPixmap(:/pic/b.png); ui-tableWidget-setItem(i, j, item); count+; ui-lineEdit-setText(QString:number(count); ui-toolButton-setIcon(QPixmap(:/pic/h.png); else if(arrij = 0) who = true; arrij = 2; item1-setIcon(QIcon(QPixmap(:/pic/h.png); ui-tableWidget-setItem(i, j, item1); ui-toolButton-setIcon(QPixmap(:/pic/b.png); 运行界面: 图5.13 五子棋游戏这个游戏的算法不是很高,同是,如果是选择人机对战的话,一般是人赢,因为电脑不具备进攻能力,不能实现冲四保三。但是仅仅作为一个娱乐,能同时两个人一起玩。撷伪氢鱧轍幂聹諛詼庞。5.8 我的收藏我的收藏模块主要是管理我的相片,方便用户查看相片。部分代码:QDir dir;dir.setPath(path + /myphoto/); /打开指定目录路径 dir.cd(.); /进入目录 QStringList string; stringlistWidget-clear(); qDebug()list.count();for(int i = 2; i listWidget,SIGNAL(clicked(QModelIndex), this, SLOT(showone();婭鑠机职銦夾簣軒蚀骞。 connect(ui-listWidget, SIGNAL(doubleClicked(QModelIndex), this, SLOT(showphoto();譽諶掺铒锭试监鄺儕泻。 QString photo = ui-listWidget-selectedItems()0-text();俦聹执償閏号燴鈿膽賾。 QString photoname = path + /myphoto/ + photo; Showphoto *s = new Showphoto(this); /跳转到图片的显示this-hide(); s-showph(photoname);s-s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土施工过程中质量监督与检查方案
- 建筑工程建筑物电气接地施工方案
- 胎膜早破47课件
- 跨境电子商务双语教程 课件 第5章 跨境电商物流与海外仓
- 混凝土浇筑后的钢筋保护方案
- 文库发布:水电站课件
- 正确认识人的本质37课件
- 直线回归与相关的区别和联系王万荣65课件
- 2025版汽车配件品牌区域总经销服务合同
- 2025版离婚协议书及财产分割及子女抚养及赡养费及共同债务及共同债权及子女教育协议
- 2025年贵州贵阳市水务环境集团有限公司招聘27人笔试参考题库附带答案详解(10套)
- 2025届中国南方航空“明珠优才管培生”全球招聘30人笔试参考题库附带答案详解(10套)
- 原发性系统性淀粉样变性的护理措施课件
- 《阿房宫赋》课件 统编版高中语文必修下册
- 桥小脑角肿瘤护理查房
- 2025小学教师招聘考试试题及答案
- 2025年纪律作风测试题及答案
- 2025江苏苏州昆山国创投资集团有限公司第一期招聘17人笔试参考题库附带答案详解版
- 安全生产网格化管理工作实施方案
- 入场安全教育培训
- 艺术设计专业教学标准(高等职业教育专科)2025修订
评论
0/150
提交评论