在ignition Vision模块中如何通过Dropdown list里面的值来实现,画面跳转
时间: 2024-03-27 13:35:08 浏览: 27
在 Ignition Vision 模块中,可以通过使用 Perspective 的 `View` 组件来实现画面的跳转。而控制下拉列表与 `View` 之间的交互,则可以使用 `Dropdown` 组件和 `onValueChanged` 事件。
以下是一个简单的示例脚本:
```python
from com.inductiveautomation.ignition.common import Perspective
from com.inductiveautomation.ignition.common.script.builtin import DatasetUtilities
from java.lang import Object
# 获取视图工厂
viewFactory = Perspective.getAsyncComponent("view")
# 获取下拉列表中的选项,并将它们的值作为视图名称
data = DatasetUtilities.toPyDataSet(event.source.parent.getComponent("Dropdown").props.options)
views = [row["label"] for row in data]
# 获取用于跳转的视图组件
view = viewFactory.view(event.view, event.session)
# 处理下拉列表的选项改变事件
def onDropdownValueChanged(value):
index = event.source.selectedStringValue
if index < len(views):
viewName = views[index]
view.switchToPath(viewName)
# 将视图组件添加到视图中
event.source.parent.getComponent("ViewContainer").add(view)
# 添加下拉列表的选项改变事件监听器
event.source.parent.getComponent("Dropdown").propertyChangeListeners.append(onDropdownValueChanged)
```
在这个示例中,我们首先使用 `DatasetUtilities.toPyDataSet` 方法获取下拉列表中的选项,并将它们的值作为视图名称。然后,使用 `Perspective.getAsyncComponent` 方法获取视图工厂,并使用 `viewFactory.view` 方法创建一个用于跳转的视图组件。
接下来,我们定义了一个 `onDropdownValueChanged` 方法,用于处理下拉列表的选项改变事件。在这个方法中,我们获取选中的选项,并根据选项的值来切换到对应的视图。
在最后的部分,我们将视图组件添加到视图中,并将 `onDropdownValueChanged` 方法添加到下拉列表的 `propertyChangeListeners` 列表中,以便在选项改变时自动触发该方法。
需要注意的是,在使用这个脚本时,需要将它绑定到一个视图上,并在视图中添加一个 `Dropdown` 组件和一个用于容纳视图的 `ViewContainer` 组件。同时,需要在下拉列表的 `props.options` 属性中设置选项的值和标签,以便在脚本中使用。