用户界面设计 5 – 限制

    保障软件的可靠性是软件开发者的责任。如果用户误操作,或者提供了错误的数据给程序,稳定的程序可以组织程序继续运行并报告错误。但这毕竟是亡羊补牢的做法,更完美的解决方案应倒是从根源上就杜绝误操作和错误的输入数据。
    所以,在做界面设计时,还应考虑如何限制用户的输入数据和操作。禁止误操作出现,把输入数据都限制在合理的范围内。

一、限制输入数据

    LabVIEW 的某些控件本身就带有对输入数据进行限制的功能。比如数值型控件,在它的属性对话框中的 Data Entry 页,可以设置这个控件接受的数据的范围。我有一个控件用来表示选取某个通道,可供使用的合法数据为通道0至通道3,我们就可以在这一页把控件的最大最小值分别设为3和0。如下图:

 
图1:数据范围限制

    这样设置后,用户也许还会输入一个不合理的数值,比如99,但LabVIEW 会立即忽略这个不合理数值。
    有时,还有更好的限制方法:让用户根本没办法选择不合理的数据。比如本例,我们在设计时,可以考虑使用 Enum 或 Ring 型控件来表示通道号,这样用户只能在正确的值中选择一个。如下图:


图2:枚举型数据

    除了 Enum 或 Ring 型控件,单选按钮也可以起到同样的效果。单选按钮可以直接就在界面上显示出所有可供选择的值,并且可以附带对每个选项的详细解释。不经常被用到的对话框可以采用这种控件。比如下图,是VI属性中设置密码的页面。

 
图3:使用选择按钮的界面

二、防止误操作

    一个简单的规则:让所有但是不应被改动的控件都失效。大家看图3中的修改密码按钮是灰色的。因为这是用户选择的是无密码,所以当时不应出现修改密码的操作出现。与其让用户判断是否可以按这个按钮,不如直接禁止它的使用,以防用户错误的按下它发生不可预期的错误。当用户有密码设置后,再允许这个按键被使用。

《我和 LabVIEW》目录

Advertisements

3 thoughts on “用户界面设计 5 – 限制

  1. 楼主说的不全,小弟补充几点:
    在实际应用中的限制是经常变动的,比如序列号规则的改变.所以这时候使用XCONTROL比较方便.同时楼主提到的enum&ring最好先定义成自定义控件.
    防止误操作个人认为最好方法就是在操作一个control同时disable其余所有的control

  2. 你好,无意间发现你的blog,有出书的打算?太好了,我现在国外读博,也发现国内的好的lv的教程太少了,期望书的出版。关注中。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s