之前在做个人项目的时,使用的是C++语言,因此在结对编程的UI设计选用了QT来进行处理。
用户注册功能实现:将用户名及密码储存在当前目录的一个txt文件中,通过文件的读写操作来进行用户的注册。其中验证码的发送使用的是秒赛云系统,
在添加Libcurl时QT对于外部库的链接遇到了不少麻烦。
修改密码功能实现:通过文件读写与一些判断语句实现。
题目生成:没有采取个人项目随机数生成题目的方式,而是建立题库,对于题库中的题目进行随机生成。这对于试卷系统的管理,题目正确的判断,
查重等方面都更加方便。
QT的UI设计:主要通过槽函数来实现页面切换,页面直接的数据传输,Action的功能实现。通过傻瓜式的拖动来对页面进行排版设计,使用stylesheet
来进行样式更改。
对于个人项目的复用:
结对编程对于个人项目的复用基本为0,原本的个人项目出题采用的是随机数方式,在结对编程中将出题方式改为了题库出题。QT中的文件读写操作,
甚至是字符串(QStrinig)等都与原来的个人项目代码有一定程度的差别。
结对编程的经验教训:
1.由于验证码发送的接口需要的char型的字符串,需要我将QT中的QString型转成char型。刚开始我使用的是方法一,但这两个函数进行整合使用有时
会出现问题,导致字符串乱码或者无法读取。改为方法二后解决了这一问题。
Qstring str; char* ch; //方法1 ch=str.toLatin1().data() //方法2 QByteArray ba = str.toLatin1(); ch=ba.data();
2.在QT中导入外部动态库Libcurl,QT中导入库首先需要在.pro中加入需要导入库的目录与头文件
LIBS+="C:\Users\31101\Documents\curl-7.66.0\lib\libcurldll.a" LIBS+="C:\Users\31101\Documents\curl-7.66.0\lib\libcurl.a" INCLUDEPATH += "C:\Users\31101\Documents\curl-7.66.0\include" DEPENDPATH +="C:\Users\31101\Documents\curl-7.66.0\include"
然后在.exe文件的目录下添加库的.dll文件,然后对于项目进行重新构建。(QT自带的添加库根本不管用)
通过该结对项目,我首次接触并学习使用QT这一软件,进行UI设计。这是一个摸索的过程,期间遇到的麻烦不少,但都通过查阅资料得到了解决。编程
过程中我意识到了自己需要学习的东西还很多,自己不懂的东西甚至是没有接触过的东西可能会在未来的工作中给自己带来麻烦。我需要去努力提升自己
的技能知识,让自己能更好的面对未来的学习及工作。
带UI的小初高数学学习软件