在ignition Vision模块中如何通过Dropdown list里面的值来实现,画面跳转,不允许使用 Perspective
时间: 2024-03-27 11:35:11 浏览: 147
ListView显示,跳转
如果不允许使用 Perspective 组件,也可以通过 Ignition Vision 的 `Template` 组件和 `runScript` 方法实现画面的跳转。具体步骤如下:
1. 创建需要跳转的画面,并将其保存为 `Template` 组件。
2. 在需要使用下拉列表的画面中,添加一个 `Dropdown` 组件和一个 `Template` 组件。将 `Dropdown` 组件的选项设置为需要跳转的画面名称,并将 `Template` 组件的 `Path` 属性设置为需要跳转的画面的路径。
3. 在 `Dropdown` 组件的 `onValueChanged` 事件中,使用 `runScript` 方法来判断选项的值,并根据选项的值来切换到对应的画面。
以下是一个简单的示例脚本:
```python
# 获取下拉列表中的选项
data = event.source.props.options
# 定义一个函数,用于根据选项的值来切换到对应的画面
def switchToPage(value):
pagePath = None
for item in data:
if item["value"] == value:
pagePath = item["label"]
break
if pagePath:
event.source.parent.getComponent("Template").props.path = pagePath
# 在下拉列表的选项改变时调用函数
switchToPage(event.source.selectedStringValue)
event.source.onValueChanged = switchToPage
```
在这个示例中,我们首先获取下拉列表中的选项,并将它们的值和标签保存在一个列表中。然后,定义了一个 `switchToPage` 函数,用于根据选项的值来切换到对应的画面。在函数中,我们遍历选项列表,查找与选中值匹配的画面路径,并将其设置为 `Template` 组件的 `path` 属性。
最后,在 `Dropdown` 组件的 `onValueChanged` 事件中,我们调用 `switchToPage` 函数,并将其设置为 `Dropdown` 组件的 `onValueChanged` 事件。这样,在选项改变时,就会自动触发该函数,并切换到对应的画面。
需要注意的是,这个示例中使用了 `Template` 组件来实现画面跳转,因此需要在 Ignition Designer 中创建 `Template` 组件,并将需要跳转的画面保存为该组件。同时,需要在 `Dropdown` 组件的选项中设置对应的画面名称,并在 `Template` 组件的 `Path` 属性中设置需要跳转的画面的路径。
阅读全文