如果您仍然还在默认的灰色前面板上填充各种新式或经典控件,那么您甚至还没有真正触及到用户界面(UI)的设计。
如果说架构合理、功能完备的程序框图好比三明治的夹肉,那么漂亮而实用的UI则是那上下两层面包。也许您会问它是必不可少的吗?也许不是的,但是这是这一外观让它与众不同。
UI设计:失传的艺术?
如果您咨询NI LabVIEW开发者他们使用LabVIEW最爱它的哪一特性,大家会给您各种各样的回答,比如可以方便处理现实世界中的信号CONTROL ENGINEERING China版权所有,或者使用高级工具获得效率提升,又或者是图形化数据流非常自然的的编程方式。开发者往往忽略了LabVIEW的“图形化”这一优点控制工程网版权所有,正是这些图形界面的前面板构成了每一个VI的“半壁江山”。
图1. 小改变带领您一步步设计出更加漂亮和易用的UI
编写优美的代码是每个应用程序重要的组成部分。毕竟,无法正常执行的程序是无意义的投资。随着LabVIEW不断的扩展,它不断应用于越来越复杂的应用中,开发人员必须投入更多的精力来提高应用程序开发的美感,因为即便是功能完好的程序,如果它的界面会令用户困惑不解,那么它的价值也大打折扣。
图2. 虽然两个VI的功能并无区别,然而秒表外形的控件让用户更容易识别出其跑秒功能
下面介绍三个LabVIEW技巧,帮助您改进程序,使它拥有外观和功能都更加优秀的UI。
1. 自定义UI外观
改进UI外观最简单的方式是利用其他元素替代LabVIEW默认的灰色前面板背景以及“新式控件面板”。只要简单改变前面板的背景颜色、利用外部资源图片美化您的UI、或者只用简单利用系统控件模板CONTROL ENGINEERING China版权所有,无需投入大量时间进行自定义您就可以获得独一无二的界面外观了。另外,系统输入控件和显示控件对大多数用户来说都是非常熟悉的,因为它们是专门设计成具有操作系统风格的。这使得用户能够快速熟悉功能,因而更具有易用性。
自定义控件增加了丰富性和灵活性。使用LabVIEW控件编辑器,您可以剖析每个控件,对组成控件的每个底层图形组成部分进行分离和修改。这一技巧令每一个控件更加风格化、易于识别,或者更加能表现它们所表示的现实世界信号。从给按钮添加模型贴图到修改仪表背景图片控制工程网版权所有,控件自定义是改进LabVIEW UI外观最受欢迎的一种方式。
2. 合理组织复杂UI
然而,伴随着您的应用程序功能范围的扩大,您不得不经常在您的LabVIEW前面板增加大量的显示信息。幸运的是,如果不要求同时显示所有的控件控制工程网版权所有,LabVIEW有两个简单的技巧可以简化处理复杂UI的工作。
选项卡(Tab)控件是一个常用的UI组件,它可以有效地将UI功能封装成几个不同的部分。它们简单易用,并且比大多人想象的更为灵活。在您的前面板添加一个选项卡控件,然后将其它输入和显示控件填充到选项卡,您可以增加和删减选显卡个数,改变选显卡的透明度,选择选显卡的物理位置以垂直显示分类,甚至您还可以给选显卡添加图片。
然而,利用选项卡虽然获得了易用性,却牺牲了扩展性。因为用户显示器的尺寸的缘故,添加的选显卡控件的数目是有限的。在进行开发前您应该仔细考虑这一细节。另外,虽然大多数内容不可见,但选项卡控件会一次性加载所有输入和显示控件到内存中。这可能会对程序的性能产生不利影响。
一个可扩展的UI组织方法是使用LabVIEW子面板技术。利用子面板,您可以创建无数的子VI,从而可以在适当的时候动态地将特定子VI内容填充到子面板控件中。利用LabVIEW子面板,您可以决定何时将显示内容加载到内存或释放掉,这使得您可以更好对程序进行控制。
3. 程序运行缓慢时告知用户
没有什么比遇到很少进行大量长时间运算的程序卡死了更令人难受了。对一个长时间的操作,及时告知用户它的开始、结束和进行中等的信息是十分重要的。
LabVIEW 自带了繁忙鼠标和进程条控件,在程序后台处理任务时,这些控件可以方便地通知用户。当您知道程序执行的详细流程时—例如各种For循环的频繁迭代—使用系统水平进度条是一个很有效的选择。
您的应用程序在用户第一次启动时可能会有一个长时间的加载过程。您可以制作一个启动画面,在获知加载过程的同时让您的用户知道您的程序已经成功启动了。通过利用前面板透明度和居中开机画面,LabVIEW只需对少数属性稍作修改,就可以十分方便地完成一个专业的产品。
图3. 您可以轻松创建和使用启动画面以实现在缓慢加载时通知用户的功能