摘要:依据物理试验数据的处理复杂性与繁琐性,选用Qt软件所供给的C++编程环境,进行试验数据处理软件开发。以迈克尔逊干与仪试验数据处理为实例,规划研发得到一套试验数据核算剖析的处理软件。可习惯迈克尔逊于涉仪试验数据处理需求,可运转于windows 98、windows 7、Unix等不同渠道,便利各个不同体系地移植运用。其兼容逐差法、最小二乘法等多种不同算法。界面漂亮,规划合理,供给了一个通用型试验数据处理渠道。
运用现代软件科学技术改善传统试验,是习惯大学物理试验课程立异开展的需求。研发具有简练便利的试验数据处理工作渠道,运用于繁琐的物理试验数据处理中,习惯于不同物理参数的测验需求;而且具有有其本身的个性化特色,合适特殊性物理参数测验需求。全篇以迈克尔逊试验数据处理软件实例作为个案来打开,详细描绘整个软件的规划与开发。
Qt作为体系开发的环境,具有不行代替的优势。Qt供给的C++运用程序开发结构,能够轻松完成“一次编写,到处编译”的跨渠道解决方案,编写的运用程序能完美运转于从windows 98到windows 7,从Mac OSX到Linux,从Solaris,HP—UX到其他依据X11的很多Unix渠道上。这让编写的运用程序能够运转在不同的体系,便利移植,乃至能够在经过简略的修正后轻松移植至运用广泛的android渠道。Qt规划师是强壮的跨渠道GUI布局和格局构建器。
一起Qt是一个跨渠道的图形用户界面运用程序开发的C++工具箱。它供给给运用程序开发者树立艺术级的图形用户界面所需的各种功用,然后直观的对可视化用户交互界面进行规划。Qt是彻底面向目标的,易于扩展,而且答应真实地组件编程。
1 试验原理简介
迈克尔逊干与仪试验原理如图1所示,从光源S宣布的光线经半反射镜的反射和透射后分为两束光线,一束向上一束向右,向上的光线又经C反射回来,向右的光线经补偿板后被反射镜D反射回来在半反射镜处被再次反射向下,最终两束光线在调查屏上相遇,发生干与。干与仪的全体结构如图2所示,图中1~16为仪器上各个部件的数字编号,可查询相关材料。
2 体系软件总架构
软件功用的完成依托3种机制:C++面向目标编程机制,Qt的信号与槽机制,Qt的事情机制。
Qt编程是由C++体系完成,面向目标的编程办法和Qt丰厚的类库,运用户能够更简略灵敏的完成各种功用。在QtCreator的协助办法下,能够查询一切类的信息。运用这种机制,能够使程序结构灵敏,层次感强。
软件全体构架包含主界面与发动界面两大部分构成。学生在做完相应的迈克尔逊干与试验后,即可发动软件,进行数据输入与核算。在数据的输入进程辨清环变数与数据组数,运用不同算法进行数据处理,选用二者比较准确值,操作简洁和人性化。体系构架图如图3所示。
其间qidong.cpp类下供给的软件信息包含软件版本号,开发作者,开发日期等而且增加图片使界面更为漂亮。log.cpp供给包含学生信息录入,和学号信息验证提示等功用。mainwindow.cpp供给的主程序界面内容及其所包含的两个中心文件,zuixiao.cpp和zhucha.cpp这是该软件首要算法程序最小二乘法和逐差法包含它们相应的差错核算办法。最终mvedit.cpp是界面漂亮与焦点等复合问题处理。
3 界面规划与布局优化
3.1 发动界面优化
1)布局优化:发动程序,进入发动界面,界面呈现版本号,开发作者等信息优化布局。
2)界面漂亮:在Qt款式表中增加相应的彩图到达漂亮界面的作用。
3.2 登陆界面规划
1)登陆信息:进入发动界面4~5秒后,呈现登陆界面,包含学生学号信息录入和身份验证。
2)过错警示:假如学生未录入信息将不能进入主程序,呈现警示窗口。在这里表现到了Qt中最为中心的信号与槽的要害运用。经过信号和槽的运用完成各个界面和数据等的传递。比方,点击按钮“封闭窗口”就会宣布一个信号,对应的槽函数close()会被调用以呼应这个信号。这种机制使部件与部件,部件与后台,部件与其他窗口,窗口与窗口之间能够进行沟通。
3.3 主界面布局规划
为了便利师生们对本物理试验数据处理体系的运用,进步用户体会,需要对主界面进行合理的布局与恰当的美化。在窗口组件的散布方面,选用左右布局使界面愈加紧凑。而在对窗口组件的美化方面,首要增加资源文件,然后运用其规划面下的Qt款式表,修正界面中的文字格局和增加彩图等功用对主界面进行漂亮优化。
例如:为了对文字做美化处理,在Qt更改款式中增加如下代码
QPushButton{ffbnt:75 18pt“华文楷体”;color:rgb(0,0,255);}
然后对按钮进行美化处理,将字体变为楷体,调整其巨细,而且改动按钮字体色彩为蓝色,然后让运用者身心更为愉悦。
3.4 焦点光标的可控性
在实际运用中,因为本试验数据个数相对较多,因而简化关于焦点光标的操控十分重要。
故界说承继自LineEdit类的自界说类QMyEdit,在类内以链表办法树立目标间次序的逻辑关系。
类界说头文件qMyEdit.h如下
然后将LineEdit类的文本框目标进步为QMyEdit类,并重写QMyEdit类的默许键盘事情函数,捕捉上/下方向键的输入,并按次序移动文本框焦点,然后完成对焦点光标的快捷操控,简化运用时的输入操作。
键盘事情函数重写办法如下
3.5 双算法的完成与变量数据的可控性
1)多种算法归纳完成:mainwindow类下有两个程序zuixiao.cpp和zhucha.cpp,别离履行该软件的两种中心算法:最小二乘法和逐差法,并核算两种算法相应的差错。逐差法在数据处理中较为遍及,而最小二乘法则是运用呈线性关系的两组数据拟合为直线,在本试验的数据处理中只需获取其斜率及差错。
两种算法的归纳运用是一个较为新颖的数据处理办法。学生的试验数据输入后,经过信号和槽的运用,将数据从主界面传递至核算部分,在处理完毕后再将成果回来主界面并显现。一起显现两种办法的成果与其对应差错,增强核算成果的可信度。
2)数据可控的完成:数据可控是指对试验数据的个数和试验中两次获取数据的间隔间光屏上环数的改动数进行操控,然后不为单一的试验数据获取办法所限制。在主界面上放置两个spin部件,用以改动输入数据个数和环的改动个数,一起答应经过鼠标点击改动数据巨细。在试验时能够依据实际情况改动数据组数与环的改动个数,然后扩展软件的适用范围。
4 试验测验与反应
经过对多组不同的数据对软件进行测验,并改动数据组数与改动环数,将软件核算成果与传统核算成果比较,成果彻底符合。
在有用数字保存方面坚持了前后共同,保证数据处理的准确度。
5 结束语
1)软件投入到试验教育中后,得到了广阔师生的共同好评。便利了学生关于繁琐数据的处理,学生在试验方面积极性与活泼性得到了必定程度的进步。一起也使得教师在教育方面得到了相当大的协助,进步了教育质量。
2)在本软件中经过对一切用户可见的文本运用QString,对动态文本运用QString::arg()函数,对一切文字文本运用tr()函数来完成国际化。
3)Qt彻底面向目标,便利了体系的开发。Qt的跨渠道特性简化了移植进程,针对不同的软件渠道,运用程序只需要一次性开发可完成屡次编译;试验教育也是一门很重要的学科运用。