如何用Ignition 的Dropdown list 的 data 属性打开不同的窗体
时间: 2024-03-21 13:39:42 浏览: 145
你可以使用Ignition的Dropdown List组件中的"data"属性来打开不同的窗口。具体实现步骤如下:
1. 首先在Ignition Designer中创建多个窗口,每个窗口都有一个唯一的名称(例如window1、window2等)。
2. 在需要使用Dropdown List组件的窗口中添加Dropdown List组件,并在组件的"data"属性中添加所有窗口的名称。
3. 在Dropdown List组件的"selectedStringValue"属性中添加一个绑定,该绑定的值为Dropdown List组件中选中的名称。
4. 在选中的名称发生变化时,使用Script组件通过调用Ignition API中的system.nav.openWindow方法来打开对应的窗口。该方法的参数为需要打开的窗口名称。
以下是一个示例脚本,可以将其添加到Script组件中:
```
windowName = event.source.selectedStringValue
system.nav.openWindow(windowName)
```
通过以上步骤,你可以使用Ignition的Dropdown List组件中的"data"属性来打开不同的窗口。当选中的名称发生变化时,对应的窗口将会被打开。
相关问题
在ignition8.1版 Vision模块中如何通过Dropdown list里面的Select String 编辑脚本实现对应画面跳转,不允许使用 Perspective ,画面跳转后清除Dropdown List里的值
要实现这个功能,您可以在Dropdown List的Select Change事件中添加一些脚本。以下是一个可能的实现方法:
1. 在您的Dropdown List组件上添加Select Change事件。在事件处理器中添加以下脚本:
```
if event.propertyName == "selectedStringValue":
# 获取选择的字符串
selected_value = event.source.selectedStringValue
# 清除Dropdown List中的值
event.source.selectedStringValue = ""
# 根据选择的字符串跳转到对应的画面
if selected_value == "画面1":
system.nav.openWindow("画面1")
elif selected_value == "画面2":
system.nav.openWindow("画面2")
# 添加其他画面的跳转逻辑
```
2. 在脚本中,首先获取选择的字符串,然后清除Dropdown List中的值。接着,根据选择的字符串,使用 `system.nav.openWindow` 函数跳转到对应的画面。您需要替换 `画面1` 和 `画面2` 这些字符串为您实际的画面名称。
3. 如果您的每个画面都有一个返回按钮,您可以在返回按钮的ActionPerformed事件中添加以下脚本:
```
system.nav.closeWindow(event)
```
这将关闭当前窗口,返回到上一个窗口。
希望这可以帮助您实现您的需求!
在ignition Vision模块中如何通过Dropdown list里面的值来实现,画面跳转
在 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` 属性中设置选项的值和标签,以便在脚本中使用。
阅读全文