如何用Ignition 的Dropdown list 的 data 属性打开不同的窗体
时间: 2024-03-21 08:39:42 浏览: 28
你可以使用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"属性来打开不同的窗口。当选中的名称发生变化时,对应的窗口将会被打开。
相关问题
在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` 属性中设置选项的值和标签,以便在脚本中使用。
在ignition Vision模块中如何通过Dropdown list里面的Select Value来实现,画面跳转,不允许使用 Perspective
在Ignition Vision模块中,可以通过使用Navigation组件来实现通过Dropdown list里面的Select Value来实现画面跳转,而不使用Perspective。以下是实现步骤:
1. 在你的Ignition项目中,选择你想要添加Navigation组件的视图。
2. 在Designer中,右键单击视图,选择“Add > Navigation > Navigation View”来添加Navigation组件。
3. 确定Navigation View的位置和大小,以及要在其中添加的导航选项。你可以通过在Navigation View的“Properties”面板中选择“Navigation Items”选项来添加导航选项。
4. 对于每个导航选项,可以设置一个“Destination View”,即该选项所对应的视图。在“Properties”面板中选择“Destination View”选项,然后选择要在该选项下显示的视图。
5. 在视图中添加一个Dropdown list组件。
6. 在Dropdown list的“Properties”面板中,选择“Data”选项。在“Data”选项中,选择“Custom”选项,并在“Custom Property Binding”框中输入以下表达式:
`[{id:1, name:"Option 1"}, {id:2, name:"Option 2"}, {id:3, name:"Option 3"}]`
这将创建一个包含三个选项的Dropdown list,每个选项都有一个唯一的id和一个名称。
7. 在Dropdown list的“Properties”面板中,选择“Action”选项。在“Action”选项中,选择“Custom”选项,并在“Custom Property Binding”框中输入以下表达式:
`if event.propertyName == "selectedValue": app.nav.swapTo(event.newValue.destinationView)`
这将在用户选择Dropdown list中的选项时触发一个事件,并将用户转到与所选选项关联的视图。
8. 完成后,保存并运行你的视图。现在,当用户选择Dropdown list中的选项时,将跳转到与所选选项关联的视图。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)