C/C++幼儿教育辅助系统
维生素C有助于免疫系统健康 #生活常识# #科普知识#
最近初学c++中的qt,写了一个超简单的幼儿教育辅助系统,主要实现的功能有:3级菜单,可以用来练习加减乘除法,难度设置,题量设置。
最终效果如下:
一个29M的安装器。
开始菜单和桌面均生成了快捷方式。
图片是我最喜欢的画师的画,这里仅仅用于个人学习,如果放出可能涉及侵权,所以不显示了。
代码的层次结构图:
其中ChildrenEducationSystem.cpp是主函数,ChildrenEducationSystem.cpp是主窗口。Common.cpp是一个共有类。(最初这整个功能是用c语言写的,后来用c++进行了重构,所以将原来的函数大部分放在Common类中以静态变量的形式存储)LevelAndNum是题量和难度设置窗口,SubMenu是子菜单窗口。
我在这次写代码中遇到的坑:
1.connect函数的使用:
connect的一般方法:
connect(sender,SIGNAL(signal()),receiver,SLOT(slot()));
这个方法有一点不好,那就是SIGNAL和SLOT中的信号和曹的名称都被当做了字符串来处理,所以即使写错了或者没连上,也不会报错。
qt5&c++11的环境下,可以使用更方便的“引用”以及“lamda表达式”
引用:
connect(ui->Btn, QPushButton::clicked,this,MyClass::Operation);
lamda表达式:
connect(ui->Btn, QPushButton::clicked,this
[=](){
/* do something.. 这里一般用emit来发射信号*/
});
对于所有的方法:
这个sender(也就是connect函数的第一个参数)必须是一个已经分配了内存且实例化之后的对象,如果没有实例化,则无法使用connect完成绑定!!
2.如果使用了qtDesigner,当你修改了ui后却发现编译器(我这里用到vs)中无法显示时,可以在代码目录的HeaderFile > 添加 >现有项,在Debug目录下的uic菜单中,找到你需要的ui_xxx.h,引入进来,这时候就能显示出你修改后的控件名字了。
这个其实并不影响你写代码,也即是说,即使你的编译器提示错误,但是正常编译依旧是通过的。
3.发布时在桌面创建快捷方式:
qt如何打包安装可以看 这个博客。这里使用的是Engima Virtual Box,安装包比较大。个人倾向于使用qt installer,可以看 这篇博客。
在qt installer中设置桌面和开始菜单快捷键就是要在.qs文件中写下如下代码:
Component.prototype.createOperations = function()
{
// call default implementation to actually install README.txt!
component.createOperations();
if (systemInfo.productType === "windows") {
var userProfile = installer.environmentVariable("USERPROFILE");
installer.setValue("UserProfile", userProfile);
component.addOperation("CreateShortcut", "@TargetDir@/幼儿教育辅助系统.exe", "@UserProfile@\\Desktop\\幼儿教育辅助系统.lnk");
component.addOperation("CreateShortcut", "@TargetDir@/幼儿教育辅助系统.exe", "@StartMenuDir@/幼儿教育辅助系统.lnk",
"workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll",
"iconId=2", "description=Open README file");
}
}
以上。若有需要源代码可留下评论qq,我邮箱私发给你。
网址:C/C++幼儿教育辅助系统 https://www.yuejiaxmz.com/news/view/682122
相关内容
艾贝通数据平台上线,C-Life助力艾乐教育集团打造智慧幼儿园示范音乐教育辅助幼儿成长的思考
辅食,幼儿,宝宝
幼儿教师怎样在教育装备的辅助下促进幼儿的自主学习?
浅谈幼儿科学教育生活化策略
幼儿教学中生活教育思想的应用
幼儿园美术教育生活化指导策略
婴幼儿辅食有哪些?
信息技术在幼儿园教学中的有效运用
幼儿园大班春季育儿知识大全