labview自定义控件

创建自定义输入控件、显示控件和自定义类型

»目录
LabVIEW 2011帮助

版本日期:June 2011

产品编号:371361H-0118

»查看产品信息
下载帮助
(仅限Windows)

自定义输入控件和显示控件是对现有前面板对象集的扩展。用户可创建外观与内置LabVIEW输入控件及显示控件不同的自定义用户界面组件。将这种自定义输入控件或显示控件保存在某个目录或LLB中,就可以在其它前面板上使用该自定义控件。还可为自定义输入控件或显示控件创建图标并添加到控件选板。创建自定义控件前,请参考说明与建议。

自定义类型和严格自定义类型用于将所有自定义输入控件或显示控件实例与已保存的自定义输入控件或显示控件文件相连接。编辑已保存的自定义输入控件或显示控件文件可修改自定义输入控件或显示控件实例,以便在如干个VI中使用相同的自定义输入控件或显示控件。

注:  另有XControl用于在LabVIEW中设计和创建复杂的输入控件和显示控件。与自定义控件不同,XControl具有由后台运行的VI所确定的动态运行时和编辑时行为。只有LabVIEW专业版开发系统中才有创建和修改XControl的功能。如VI包含XControl,可在所有LabVIEW版本上运行该VI。

控件编辑器窗口

控件编辑器窗口用于控件的自定义并为LabVIEW类定义私有数据控件。例如,改变控件的大小、颜色,控件中各元素的相对位置,向控件导入图像等。

可通过以下方式打开控件编辑器窗口:

  • 右键单击前面板上的输入控件或显示控件,从快捷菜单中选择高级»自定义
  • 用定位工具选中前面板上的某个输入控件或显示控件后,选择编辑»自定义控件
  • 打开新建对话框。
  • 右键单击一个已有的控件或控件模板并选择打开
  • 项目浏览器窗口中右键单击我的电脑,从快捷菜单中选择新建»控件
  • 创建LabVIEW类并单击该私有数据控件。
    注:  对类私有数据控件进行定义时,控件编辑器窗口将打开并自动在程序框图上显示类私有数据的簇。同时,LabVIEW将控件编辑器窗口的下拉列表控件设置为默认的类私有数据,用户无法改动。
  • 在程序框图上右键单击自定义类型或严格自定义类型的实例,从快捷菜单中选择打开自定义类型

虽然控件编辑器窗口在外观上与前面板十分相像,但其功能仅限于自定义单个的输入控件或显示控件。对于LabVIEW类,该控件必须为一个簇。控件编辑器窗口没有相应的程序框图且无法运行。

控件编辑器窗口一次只能包含一个输入控件或显示控件。但是,控件编辑器窗口可对含有其他输入控件或显示控件的数组控件或簇控件进行自定义。数组或簇本身就是一个控件。当把输入控件或显示控件从数组或簇中移入或移出时,控件编辑器窗口的工具栏上将出现无效控件按钮。单击无效控件按钮,错误列表窗口将显示发生此错误的解释。

控件编辑器窗口的工具栏用于提示用户当前处于编辑模式还是自定义模式。单击该按钮在两种模式之间切换。也可通过选择操作»切换至自定义模式操作»切换至编辑模式事件操作模式间的转换。控件编辑器窗口以编辑模式打开。

与在前面板的编辑模式下的操作相同,控件编辑器的编辑模式可改变控件的大小及颜色,或在控件的快捷菜单中调整相应选项。

自定义模式可通过改变控件的各个部件实现控件的大幅改动。

自定义模式快捷菜单

在自定义模式下,控件中每个部件的快捷菜单将取代整个控件的快捷菜单。不同的部件有不同的快捷菜单。快捷菜单可执行以下操作:

  • 自定义外观部件,例如,将修饰选板上的对象添加到自定义输入控件或显示控件。
  • 自定义文本部件,例如,名称标签。
  • 自定义作为部件使用的输入控件或显示控件,例如,滑动杆控件的数字显示的数值控件。数值控件还可作为旋钮、仪表和图表的数字显示。有些控件则更为复杂。例如,图表使用一个树形控件作为其光标的显示部件。

自定义输入控件或显示控件的各个部件

输入控件或显示控件的独立部件

所有的输入控件和显示控件都由小型的部件组成。例如,下图显示了滑动杆控件的各个部件。

控件编辑器窗口一旦切换到自定义模式,控件的各个部件即成为各自独立的部件。对每个部件进行的修改不会对其他部件造成影响。自定义模式显示了控件的所有部件,包括在编辑模式中隐藏的任何部件,如名称标签或数值控件上的基数。由于控件的各个部件相互脱离,因此在自定义模式下无法对控件的值进行操作或修改。

在自定义模式下,可用定位工具选中控件的两个或更多个部件,使用对齐对象、分布对象及工具栏上的重新排序下拉菜单将各个部件重新排列。

控件部件窗口

选择窗口»显示部件窗口可打开控件部件窗口。控件部件窗口用于调整控件中各个部件的大小并为各部件定位。控件部件窗口可识别出控件的各个部件,显示各个部件的确切位置并以像素为单位显示部件的大小。

控件部件窗口的当前部件部分表示在控件编辑器窗口中所选部件的图形及名称。单击当前部件显示区可选择和显示控件中任意部件。单击当前部件显示框的向上或向下箭头,可滚动显示控件的所有部件。

在控件编辑器窗口中移动部件的位置或调整部件大小时,LabVIEW也将在控件部件窗口的当前部件控件部件的位置与尺寸中改变相应部件的位置和大小。要实现上述操作,也可直接在部件位置和尺寸部分输入部件的位置和尺寸的值,这在令两个部件具有完全相同的大小且互相对齐时尤为有用。在部件位置和尺寸部分输入部件的位置和尺寸的值后,按下回车键或单击鼠标左键即可令修改生效。

向自定义输入控件和显示控件添加外观部件

可使用控件编辑器窗口在编辑模式或自定义模式下向自定义控件添加图形、文本或修饰。如从剪贴板粘贴一个图形或一段文本,或用标签工具创建一个标签,或从修饰选板选择一个修饰,则该操作对象便成为控件的一个新的修饰部件,并同控件一起出现在前面板上。在控件编辑器窗口中,可移动部件位置、调整部件大小、改变层叠次序或替换新的修饰部件。在前面板上使用自定义控件时,可对任何添加到控件上的修饰部件进行大小调整。但不可改变这些添加的修饰部件的位置。

自定义外观部件的模式快捷菜单项

外观部件可在不同场合显示单个或多个各自独立的图形。要自定义外观部件,应把控件编辑器窗口切换至自定义模式并右键单击需自定义的外观部件。外观部件快捷菜单中出现的选项取决于该外观部件的类型。

具有单个图形的外观部件

具有单个图形的外观部件的快捷菜单包含以下选项:

  • 复制到剪贴板—-将部件的图形副本放置到剪贴板上。将一个图形复制到剪贴板后,右键单击一个部件并从快捷菜单中选择从剪贴板导入图片,将图形导入部件。

    如需在自定义外观部件时用到简单的图形,可从其他输入控件或显示控件的内置部件复制,这样就无需在图形应用程序中再行创建。例如,如需一个简单的矩形的图形,可右键单击该外形为矩形的部件的衬底并从快捷菜单中选择复制到剪贴板。从内置部件或修饰中导入的图形比在图形应用程序中创建的图形更易调整大小。例如,为一个在图形应用程序中绘制的矩形调整大小时,矩形将整体扩展,面积增大的同时边框变宽。而为一个从内置控件的部件复制而来的矩形调整大小时,矩形的边框将保持其原有宽度。  

    从内置控件复制而来的部件在彩色或黑白显示器上显示出的外观相似。此外,使用上色工具可为由内置部件和修饰复制而来的图形添加色彩。由于颜色已在图形的定义中规定,故从其他来源导入的图形的颜色无法修改。
  • 从剪贴板导入图片—用剪贴板上的图形替换外观部件当前使用的图形。例如,可为一个布尔开关的打开或关闭状态导入图形。如剪贴板不含有图形,则从剪贴板导入图片选项不可用。
  • 以相同大小从剪贴板导入—用剪贴板上的图形替换外观部件当前使用的图形,缩放导入的图形使之适合部件的大小。如剪贴板不含有图形,则以相同大小从剪贴板导入选项不可用。
  • 从文件导入—从文件对话框中选择图形以替换外观部件当前使用的图形。
  • 以相同大小从文件导入—从文件对话框中选择图形以替换外观部件当前使用的图形,缩放导入的图形使之适合部件的大小。
  • 恢复—不改变部件的位置将其恢复到原来的外观。如在前面板上打开某个控件的控件编辑器窗口并对其部件进行改动,则从其快捷菜单中选择恢复将恢复该部件在前面板上的外观。如在控件编辑器窗口中打开自定义的控件,则恢复选项不可用。
  • 原始大小—将部件的图形恢复至其原始大小,便于从其他应用程序中导入图形并调整图形大小。有些从其他应用程序导入的图形经大小调整后显示效果不如其原始图形。此时需要将导入的图形恢复至其原始大小以提高其显示质量。如不导入图形,则原始大小选项不可用。
注:  也可以剪贴板上的图像替换修饰部件所使用的图形,即选中一个修饰部件,再选择编辑»粘贴。如需以一个文件中的图像替换修饰部件所使用的图形,可右键单击该修饰部件,从快捷菜单中选择从文件导入

具有多个相关图形的外观部件

有些外观部件具有多个相关图形以表示不同的状态。这些不同的图形大小、颜色相同。对外观部件的当前图形进行移动或调整大小时,该部件的其他图形也将随之移动或大小成比改变。例如,布尔开关有四个不同的图形。第一个图形表示状态为FALSE。第二个图形表示状态为TRUE。第三个图形表示释放时切换的状态,即从TRUE到FALSE的过渡状态。第四个图形表示“释放时触发”的状态,即从FALSE到TRUE的过渡状态。当布尔控件处于“释放时切换”或“释放时触发”的状态时,布尔控件的值将在鼠标按钮被释放时才改变。在单击鼠标按钮和释放鼠标按钮两个动作之间,布尔控件将显示作为过渡状态的第三或第四个图形。

对于具有多个相关图形的外观部件,其快捷菜单不仅包含了具有单个图形的外观部件的所有菜单选项,还包含了图片项的选项。从快捷菜单中选择图片项可显示一个外观部件名下所有的图形。当前图形外部围有深色边框。导入图形仅改变当前图形。如需为其他图形导入图形,应右键单击部件,从快捷菜单中选择图片项,从中选择需导入的新图形后将其导入。

具有多个独立图形的外观部件

对于具有多个图形的外观部件,这些图形的颜色和大小可不尽相同。例如,滑动杆控件通过两个大小不同的图形表示多值滑动杆上处于活动状态的滑块。对于具有多个独立图形的外观部件,其快捷菜单不仅包含了单个图形或多个相关图形的外观部件的所有菜单项,还包含了独立大小这一菜单项。从外观部件的快捷菜单中选择独立大小并勾选旁边的复选框可在不改变该外观部件其他图形的前提下,移动其中每个图形的位置并调整图形大小。

文本部件

文本部件是一个带有文本的图形,如标签。文本部件的快捷菜单包含了具有单个图形的外观部件的所有菜单选项,以及在编辑模式下前面板中所有可用的文本元素。控件部件窗口仅显示文本部件的背景图形而不显示文本。背景图形可自定义,但文本无法自定义。

布尔控件的编辑模式

与其他类型控件只可在控件编辑器窗口为自定义模式下导入图形不同,布尔输入控件及显示控件可在控件编辑器窗口的编辑模式下导入图形。当控件编辑器窗口处于编辑模式时,右键单击布尔输入控件或显示控件,则弹出的快捷菜单将包含所有编辑模式下前面板上可用的布尔控件,以及从剪贴板导入图片菜单项。

连接自定义输入控件和显示控件并保存到一个自定义输入控件或显示控件文件

在VI中使用自定义输入控件或显示控件后,该VI中自定义控件的实例与所保存的控件间的连接将不复存在。自定义输入控件或显示控件的每个实例是一个单独、独立的副本。因此,改变自定义控件并不影响正在使用该自定义控件的VI。如需使自定义输入控件或显示控件的实例与自定义输入控件或显示控件文件相连接,可将该自定义输入控件或显示控件另存为一个自定义类型或严格自定义类型。一个自定义类型或严格自定义类型的所有实例与其原始文件相连。

将自定义输入控件或显示控件另存为一个自定义类型或严格自定义类型后,对该自定义类型或严格自定义类型所作的任何数据类型改动将对所有使用这些自定义类型或严格自定义类型的VI实例造成影响。与此同时,对严格自定义类型所作的外观改动也将影响前面板上该严格自定义类型的所有实例。

自定义类型和严格自定义类型

自定义类型和严格自定义类型可将所有自定义输入控件或显示控件的实例连接到已保存的自定义输入控件或显示控件文件。编辑已保存的自定义输入控件或显示控件文件可修改所有自定义输入控件或显示控件实例,以便在如干个VI中使用相同的自定义输入控件或显示控件。

自定义类型

自定义类型为自定义输入控件或显示控件的每个实例指定了正确的数据类型。如自定义类型的数据类型发生改变,则该自定义类型的所有实例将自动更新。换言之,在使用了该自定义类型的每个VI中,各实例的数据类型将改变。然而,由于自定义类型仅规定了数据类型,仅有数据类型那部分的值被更新。例如,数值控件中的数据范围便不是数据类型的一部分。因此,数值控件的自定义类型并不定义该自定义类型实例的数据范围。同时,由于下拉列表控件各选项的名称没有定义其数据类型,因此在自定义类型中对下拉列表控件中各选项的名称进行改动将不会改变自定义类型实例中各项的名称。如在一个枚举型控件的自定义类型中改变其选项名称,由于选项名称也是枚举型控件数据类型的一部分,因此其实例将发生更新。自定义类型实例可拥有其唯一的标签、描述、默认值、大小、颜色,或设定其风格为输入控件或显示控件,如滑动杆或旋钮。

如改变一个自定义类型的数据类型,LabVIEW将尽可能把该自定义类型实例的原有默认值转换为新的数据类型。如数据类型被改为一个不兼容的类型,如数值控件被替换为字符控件,则LabVIEW将无法保留实例的默认值。如自定义类型的数据类型被改为其先前所无法兼容的数据类型,LabVIEW将把该自定义类型的默认值设置为用户在.ctl文件中指定的值。如用户未指定默认值,LabVIEW将使用相应数据类型的默认值。例如,如自定义类型从数值改为字符串,则LabVIEW将把与先前数值型数据类型相关的所有默认值替换为空字符串。

严格自定义类型

严格自定义类型将把实例除标签、描述和默认值外每个方面强制设置为与严格自定义类型相同。对于自定义类型,严格自定义类型的数据类型将在任何使用该严格自定义类型的场合下保持不变。严格自定义类型也对其他值进行了定义,如对数值控件及下拉列表控件中控件名称的范围检查。严格自定义类型可使用的VI服务器属性仅限于对控件外观产生影响的属性,包括可见、禁用、键选中、闪烁、位置和边界。

将实例与严格自定义类型移除连接,可阻止自定义类型实例进行自动更新。

创建和编辑自定义类型和严格自定义类型

可在前面板和程序框图上创建和编辑自定义类型或严格自定义类型。控件编辑器窗口和自定义控件的各种技巧也适用于创建和编辑自定义类型。

阻止自定义类型实例的自动更新

右键单击实例,取消快捷菜单中勾选的从自定义类型自动更新选项,可阻止当自定义类型的数据类型改变时,自定义类型的某个实例进行自动更新。取消勾选从自定义类型自动更新可阻止实例在自定义类型的数据类型发生改变时进行自动更新,但仍保留实例与自定义类型的连接。如需断开实例与自定义类型的连接,可右键单击实例,从快捷菜单中选择断开连接自定义类型

注:  将实例与严格自定义类型移除连接,可阻止自定义类型实例进行自动更新。

如禁用自定义类型实例的自动更新并改变实例的数据类型,则该实例将模糊显示且运行按钮显示为断开。如需启用该实例,可右键单击该实例,从快捷菜单中选择从自定义类型更新断开连接自定义类型。选择从自定义类型更新将把实例的数据类型改为自定义类型的数据类型。断开连接自定义类型将使实例与自定义类型间永久地移除连接。

当自定义类型的数据类型被更改后,打开含有该自定义类型实例的VI,所有自动更新被禁用的实例将模糊显示。同时,运行按钮也以断开显示。如需启用该实例,可右键单击该实例,从快捷菜单中选择从自定义类型更新断开连接自定义类型

移除实例与自定义类型或严格自定义类型的连接

右键单击实例,从快捷菜单中选择断开连接自定义类型,可永久断开自定义类型或严格自定义类型与其实例间的连接。断开与自定义类型或严格自定义类型的连接将取消实例使用数据类型的限制,令实例成为一个输入控件或显示控件。

不可用的自定义类型和严格自定义类型

对于每个自定义类型或严格自定义类型实例,含有该实例的VI将与保存该自定义类型或自定义类型文件保持连接。如VI含有需要运行的自定义类型或严格自定义类型实例,则VI必须具备含有该自定义类型或严格自定义类型的文件。如VI已打开而LabVIEW无法找到该VI所需的自定义类型或严格自定义类型,LabVIEW将禁用该VI中的自定义类型或严格自定义类型实例,运行按钮也将显示为断开。如需VI运行,应找到并打开正确的自定义类型或严格自定义类型。也可右键单击被禁用的实例,从快捷菜单中选择断开连接自定义类型以永久断开实例与自定义类型或严格自定义类型的连接。

使用自定义类型和严格自定义类型

自定义类型和严格自定义类型可以像任何自定义输入控件或显示控件一样,放置于前面板或程序框图上。右键单击自定义类型或严格自定义类型实例,其快捷菜单包括各种自定义类型的选项。如需从前面板或程序框图打开自定义类型或严格自定义类型,可右键单击实例,从快捷菜单中选择打开自定义类型

程序框图上自定义类型或严格自定义类型的左上角的符号表示当前的类型实例。将鼠标移至该符号,提示框将显示自定义类型或严格自定义类型的名称。修改自定义类型将对程序框图上的实例造成影响,即程序框图上的实例根据前面板上所作修改相应发生改变。但是,如改变一个严格自定义类型,放置在程序框图上的常量显示为严格类型,只有数据类型改变,常量才会相应改变。例如,如更新一个严格自定义类型下拉列表控件中的字符串值,LabVIEW不会更新放置在程序框图上该严格自定义类型常量,因为字符串值不是下拉列表控件的数据类型。

使用簇自定义类型和簇严格自定义类型

如将簇自定义类型或簇严格自定义类型放置于前面板,可用程序框图上的按名称捆绑函数及按名称解除捆绑函数访问簇的元素。与捆绑函数和解除捆绑函数按照簇顺序引用簇元素不同,“按名称捆绑”函数和“按名称解除捆绑”函数按照名称引用元素。因此,元素的重新排序、向簇自定义类型或簇严格自定义类型添加新元素均不会使VI断开。

对于簇自定义类型或簇严格自定义类型,与“按名称捆绑”函数和“按名称解除捆绑”函数连接后,如其中某个元素被删除,则该丢失元素的引用便无效,从而必须对程序框图进行修改。“按名称捆绑”函数和“按名称解除捆绑”函数中的无效名称显示为黑色。单击“按名称捆绑”函数和“按名称解除捆绑”函数将打开有效名称的列表,可视需选择其中的名称。

对簇自定义类型或簇严格自定义类型中的控件创建引用时,LabVIEW使用簇的顺序来决定引用指向簇中的哪个控件。如从簇自定义类型或簇严格自定义类型中删除一个控件,引用指向的控件可能会产生错误。从簇自定义类型或簇严格自定义类型中删除一个控件时,确保各个引用仍指向原簇控件。

你可能感兴趣的:(labview)