版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[1]的:voidExamPaperModel::add(boolisMarkd,boolisCollection,QStringquestionTxt,intscore,inttrueResult,QStringResultA,QStringResultB,QStringResultC,QStringResultD)方法来将试题数据插入到试卷列表,核心代码:boolExamPaperModel::setData(constQModelIndex&index,constQVariant&value,introle){if(index.isValid()&&role==Qt::EditRole){introw=index.row();//根据行号从内部数据结构中定位,然后将其改编成valueemitdataChanged(index,index);returntrue;}returnfalse;}QVariantExamPaperModel::data(constQModelIndex&index,introle)const{ExamChoiceQusetion*examChoiceQusetion=m_examChoiceQusetionList.at(index.row());if(examChoiceQusetion==nullptr){returnQVariant();}else{switch(role){caseQt::UserRole:returnexamChoiceQusetion->getNumber();caseQt::DisplayRole:returnexamChoiceQusetion->getCheckResult();caseQt::SizeHintRole:returnQSize(0,100);default:returnQVariant();}}//if(!index.isValid())//returnQVariant();//FIXME:Implementme!returnQVariant();}voidExamPaperModel::add(boolisMarkd,boolisCollection,QStringquestionTxt,intscore,inttrueResult,QStringResultA,QStringResultB,QStringResultC,QStringResultD){ExamChoiceQusetion*examChoiceQusetion=newExamChoiceQusetion();examChoiceQusetion->setNumber(indexNumber);examChoiceQusetion->setQuestion(questionTxt);examChoiceQusetion->setScore(score);examChoiceQusetion->setTrueResult(trueResult);examChoiceQusetion->setResultA(ResultA);examChoiceQusetion->setResultB(ResultB);examChoiceQusetion->setResultC(ResultC);examChoiceQusetion->setResultD(ResultD);indexNumber+=1;m_examChoiceQusetionList.push_back(examChoiceQusetion);emitlayoutChanged();}6.2.4客户端界面客户端界面分为四个部分:考场界面(图6-9),个人信息界面(图6-10),网络连接界面(图6-11),通知查看界面(图6-12)图6-9考场界面图6-10个人信息界面图6-11网络配置界面图6-12信息查看界面客户端可以接收服务器发送的试卷、消息,以及修改本机网络配置并与服务器交流,已经查看并修改个人信息。客户端主要加载两个数据视图:个人信息视图和试卷视图;个人信息数据模型的get/set方法来获取和设定当前个人信息,通过setModel()方法来绑定UI视图和数据模型核心代码ClientWindow::ClientWindow(QWidget*parent):QWidget(parent),ui(newUi::ClientWindow){ui->setupUi(this);InitObject();//初始化所有对象InitUI();//初始化界面i=DBManager->searchData(m_userInfoModel,"UserInfo","EncreCroe","1234567890");if(i==0){QMessageBox::information(this,"info","ok",QMessageBox::Yes);}//this->ui->tableView->setModel(userInfoModel);m_userInfoModel=newUserInfoModel(this);m_userInfoDelegate=newUserInfoDelegate(m_userInfoModel,this);ui->listView->setModel(m_userInfoModel);ui->listView->setItemDelegate(m_userInfoDelegate);m_examPaperModel=newExamPaperModel(this);m_examPaperDelegate=newExamPaperDelegate(m_examPaperModel,this);ui->listView_2->setModel(m_examPaperModel);ui->listView_2->setItemDelegate(m_examPaperDelegate);mtc->show();mts->show();ui->horizontalLayout->addWidget(mtc);ui->horizontalLayout->addWidget(mts);}6.2.5自定义弹窗界面图6-13自定义弹窗界面自定义弹窗界面实现了自定义消息弹出的接口,弹出方式为阻塞式,全局单例模式。核心代码:#include"MessageWindow.h"#include"ui_MessageWindow.h"MessageWindow::MessageWindow(QWidget*parent):QWidget(parent),ui(newUi::MessageWindow){ui->setupUi(this);InitUI();}MessageWindow::~MessageWindow(){deleteui;}voidMessageWindow::closeEvent(QCloseEvent*event){//关闭窗口时结束事件循环,在exec()方法中返回选择结果;if(m_eventLoop!=nullptr){m_eventLoop->exit();}event->accept();}voidMessageWindow::InitUI(){this->setWindowFlags(Qt::FramelessWindowHint);this->setAttribute(Qt::WA_TranslucentBackground,true);m_eventLoop=newQEventLoop();}shortMessageWindow::ShowMessage(QWidget*parent,QStringMessageInfo){if(parent!=nullptr){ui->Infomation->setText(MessageInfo);this->setGeometry(parent->geometry());this->setWindowModality(Qt::ApplicationModal);this->show();m_eventLoop=newQEventLoop(this);m_eventLoop->exec();}returnResult;}voidMessageWindow::on_Btn_OK_clicked(){Result=1;close();}voidMessageWindow::on_Btn_Cancle_clicked(){Result=0;close();}
7结论本系统主要是基于C++语言开发的,系统整体使用了QT框架下的MVD模式,实现前后端解耦,但同时实现了数据的双向绑定。整个系统由数据驱动,数据流通是系统运作的核心思想。系统从窗口到数据类都应用了面向对象的继承思想,使得程序的可维护性更高,不会牵一发而动全身。系统的TCP模块从Socket层开始实现,对于套接字的生存周期做了很好的管理,不会存在弃用的套接字仍然占用系统资源的问题。系统目标是跨平台运行,故所有代码平台无关,由于此系统面向小规模用户,在轻便和易部署的特性上做了很多努力,基本实现了开箱即用的目标。本系统至此的基本功能已经实现,可以满足小规模用户的测试需要,使得局域网环境内的私密性考试更加简易和方便,可以大大节约考试前后的工作量,提高工作效率。
参考文献(美)莱芬韦尔著.软件需求管理[M].机械工业出版社,2002-3.(美)福勒.重构改善既有代码的设计[M].人民邮电出版社,2010:110-139.杨小凡.TCP/IP相关协议及其应用[J].通讯世界,2019,26(01):27-28.[美]普拉塔(Prata,S).C++PrimerPlus(第六版)[M].人民邮电出版社,2015:22-25.QTCompany.QtDocumentation[EB/OL]https://doc.qt.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026数字警察面试题及答案
- 2026限童令面试题目及答案
- 小升初语文易错知识点专项集训A卷及答案
- (2026版)学校作文之学校政府采购申请报告
- 文学常识知识竞赛试题及答案(选择题)
- 2023年热熔胶网膜行业分析报告及未来五至十年行业发展报告
- 北京体育大学招聘笔试真题2025
- 2020-2021年人教版八年级化学(上册)期末试卷及答案(全面)
- 2025-2026学年四川省甘孜藏族自治州新龙县数学四下期中综合测试模拟试题(含答案)
- 2025-2026学年四川省南充市道鑫双语学校数学三下期中联考模拟试题(含答案解析)
- 2004年国家公务员录用考试《行测》真题(B卷)
- 第八章农业气象灾害及其防御课件
- 2024年贵阳市第一人民医院人员招聘考试真题
- 《振动监测》课件演示
- 2025年天翼云高级解决方案架构师试题及答案
- 《榫卯结构分析》课件
- 数字时代劳动形态变革的法治回应
- GB/T 35601-2024绿色产品评价人造板和木质地板
- 全国身份证前六位、区号、邮编-编码大全
- 2024末端恒压数字全变频供水设备应用技术规程
- 发展速度灵敏素质(教学设计)人教版体育三年级下册
评论
0/150
提交评论