1第12121212章人机界面交互设计2引子�LabVIEW很重要的一个优势就是界面编辑的所见即所得。LabVIEW前面板包含了大量形象逼真的控件,用户还可以创建自定义控件。前面板的窗口形式也可以以不同的方式显示以满足不同的需求。在用户交互方面,用户可以通过按钮、播放声音、对话框、菜单和键盘输入等多种方式与程序进行交互。3本章内容�12.1VI12.1VI12.1VI12.1VI属性设置�12.212.212.212.2对话框�12.312.312.312.3错误处理�12.412.412.412.4菜单�12.512.512.512.5鼠标指针�12.612.612.612.6播放声音�12.712.712.712.7自定义控件和自定义数据类型�12.912.912.912.9设计形象生动的用户界面412.1VI12.1VI12.1VI12.1VI属性设置�VI有很多属性是可以设置的,这其中包括:VI图标、VI修改历史、VI帮助文档、密码保护、前面板显示内容、窗口大小、执行控制和打印属性等。通过配置这些属性可以让我们的VI适合在不同的场合运行。512.1VI12.1VI12.1VI12.1VI属性设置�选择菜单File-VIPropertiesFile-VIPropertiesFile-VIPropertiesFile-VIProperties打开如下图所示的对话框。缺省为GeneralGeneralGeneralGeneral选项,在该选项下可以修改VI图标,查看VI修改历史等。612.1VI12.1VI12.1VI12.1VI属性设置�前面板显示格式设置对话框712.212.212.212.2对话框�12.2.112.2.112.2.112.2.1普通对话框�对话框VI函数在FunctionsPalette的Programming-Dialog&UserInterface…面板下。按类型分为两种对话框:一种是信息显示对话框,另一种是提示用户输入对话框。812.212.212.212.2对话框�12.2.212.2.212.2.212.2.2用户自定义对话框�除了LabVIEW提供的简单的对话框,用户还能通过子VI的方式实现用户自定义的对话框。设置子VIVIVIVI调用方式912.212.212.212.2对话框�用户自定义的对话框举例1012.312.312.312.3错误处理�LabVIEW通过Errorin和Errorout簇来携带错误信息,并可以将错误信息从底层VI传递到上层VI1112.312.312.312.3错误处理�在调用含有errorout输出的子VI时,当错误发生时若错误输出端悬空,就会自动弹出错误对话框显示错误信息,并询问是否继续运行。错误对话框除了显示errorout簇中的代码,错误源信息外,还会显示错误的可能原因,这对分析问题非常重要。1212.412.412.412.4菜单�12.4.112.4.112.4.112.4.1运行时主菜单(Run-TimeMenuRun-TimeMenuRun-TimeMenuRun-TimeMenu)�在Edit菜单中选择Run-TimeMenu…会弹出如图所示的菜单编辑器。1312.412.412.412.4菜单�12.4.112.4.112.4.112.4.1运行时主菜单(Run-TimeMenuRun-TimeMenuRun-TimeMenuRun-TimeMenu)菜单操作相关VIVIVIVI函数面板1412.412.412.412.4菜单�菜单响应的程序框图1512.412.412.412.4菜单1612.412.412.412.4菜单�通过事件结构实现菜单响应的程序框图1712.412.412.412.4菜单�12.4.212.4.212.4.212.4.2右键快捷菜单(Run-TimeShortcutRun-TimeShortcutRun-TimeShortcutRun-TimeShortcutMenuMenuMenuMenu)1812.512.512.512.5鼠标指针�鼠标指针形状经常用来为用户显示一定的信息,譬如沙漏形状代表系统正忙,前后箭头代表用户此时可以调整对象大小,十字箭头代表此时用户可以移动窗口。1912.512.512.512.5鼠标指针�举例2012.612.612.612.6播放声音2112.712.712.712.7自定义控件和自定义数据类型�12.7.112.7.112.7.112.7.1自定义控件(CustomControlsCustomControlsCustomControlsCustomControls)2212.712.712.712.7自定义控件和自定义数据类型�自定义控件编辑窗口2312.712.712.712.7自定义控件和自定义数据类型�12.7.212.7.212.7.212.7.2自定义数据类型(TypeDefinitionTypeDefinitionTypeDefinitionTypeDefinition)2412.912.912.912.9设计形象生动的用户界面�12.9.112.9.112.9.112.9.1修饰静态界面�调节控件的颜色、大小和位置�控件的排版,分组�利用修饰元素2512.912.912.912.9设计形象生动的用户界面�漂亮的界面举例2612.912.912.912.9设计形象生动的用户界面�12.9.212.9.212.9.212.9.2动态交互界面�美观的静态界面可以让用户感到赏心悦目,而动态的交互界面可以为用户提供更多的信息。�譬如系统可以根据配置情况载入不同的界面或菜单;用不断闪烁的数字控件表示有报警发生;当用户移动鼠标到某代表关键操作的按钮上时按钮颜色发生变化从而提醒用户小心操作…2712.912.912.912.9设计形象生动的用户界面�利用控件的BlinkingBlinkingBlinkingBlinking属性来显示报警举例2812.912.912.912.9设计形象生动的用户界面�确认对话框举例29小试身手�1.利用VI的属性设置,编写一个具有如下行为的VI:�1)VI一打开时便开始自动运行;�2)运行时,前面板自动显示在屏幕中央;�3)添加密码保护,需要密码才能查看程序框图;�4)添加VI帮助文档;�5)运行时使滚动条、菜单、工具栏不可见;�6)运行时不允许直接关闭窗口。30小试身手�2.写一个能够传递错误的子VI,子VI的功能是a+b=c,当有错误输入时,错误直接输出,c输出为0。当无错误输入时,进行正常计算。31小试身手�3.编写一个VI,其菜单结构如右图所示。菜单行为如下:�1)当VI初始运行时,升温和降温两个菜单项处于无效(Disable)状态,当用户点击启动菜单项后,这两个菜单变为使能(Enable)状态,同时启动菜单项变为无效状态;2)点击退出按钮停止VI运行;3)点击其它按钮,弹出如右下图所示的对话框;4)要求最好用事件结构实现。32小试身手�4.利用下面这两张图片做一个自定义按钮控件,ON为笑脸,OFF为哭泣。