作为一款以推向市场为目的三维扫描软件,清晰、易用、美观的用户体验是产品受到用户喜爱的根本所在。图形用户界面及其包含的一系列UI控件、可视化模块作为软件与用户进行交互的窗日,直接影响用户在使用本软件时的体验。于此同时,一个良好的用户界面和可视化控件同样可以方便算法开发人员的工作。
软件使用多页布局方式,四个阶段分别对应四个标签页,当软件执行到相应阶段时,自动跳转至对应页面,实现软件界面的更新。每个标签页均包含四个区域,初始化页面为例,如图所示。A区为菜单栏,B区为快捷操作栏,C区可视化窗曰,D区为控制及参数设置面板。其中,A,B区域为四个标签页共用,C,D区域随标签页的切换而改变。
A区菜单栏是一种树形结构,它提供了全部软件功能的入口。B区快捷操作栏是一个可以拖拽停靠窗口,可根据用户的使用习惯,放置于主界面的左右边或上部,它为普通用户提供了常用的按键,可以完成连接设备、扫描、停止、删除、点云下载以及三维重建操作,覆盖了一次扫描所需要的大部分操作,极大的方便了用户的使用。C区的可视化窗口是软件界面的核也,它直观的向用户反馈当前扫描信息,同时作为一个多功能3D浏览器,具有缩放、拖拽、编辑等功能。D区控制及参数设置面板是用户和扫描软件进行交互的要途径,用户可以通过控制面板进行参数的设定。软件根据用户所处阶段不同,自动切换界面布局,这样可心以减少单一界面上的信息量,使用户能够专注于当前阶段的操作,降低用户的学习成本,简化操作。
软件的业务逻辑通过mainform类实现,其类图如图所示(仅列出重耍成员),它继承自Qt框架提供的QMainWindow类,并在类内创建了 Ui::mainformClass类的实例ui用于管理界面控件,主面所有控件都是ui的成员,包括Qt内置控件以及实现的可视化控件glViewer、MeshViewer及ResultViewer。同时,mainform类还包含pcCoutroller_Dialog和script_Dialog两个对话框,分别用于运动控制模块和脚本管理模块。