ACT开发指南|如何动态显示属性控件
- 作者优秀
- 优秀教师/独家讲师
- 平台推荐
- 主编推荐/内容稀缺/全网独家
首先,我们一起考虑如下开发场景:在ACT向导的建模阶段,将三种结构形式:Cube、Cylinder和Sphere的创建流程放在一个步骤中。
其中,Cube创建需要输入Length,Cylinder创建需要输入Radius和Height,Sphere创建需要输入Radius。
那么我们需要定义一个select下拉框:Primitive和三个float属性输入控件:Length、Radius和Height。如上所示,我们如果将所有属性控件都显示在界面上,就会显得很臃肿而且不友好,不够优雅和智能。那么如何实现如下的控件的动态显示效果呢?即根据Primitive下拉框选择的值,改变Length、Radius和Height三个属性控件的可见性。接下来,小田老师就给大家分享在ACT向导开发中,实现属性控件动态显示的两种方法:XML文件定义和回调函数实现。在ACT帮助文档下《ACT XML Reference:ACT XML Tags》中,我们找到<Property>标签,会发现一个attribute:visibleon=,说明如下:(1)将Primitive定义为<propertygroup>,并给定“select”的control类型,通过options给定下拉选项值;(2)定义Length、Radius和Height三个<property>控件,并给定“float”的control类型,放在Primitive属性组下;(3)给定三个属性控件的visibleon属性值为Primitive下拉框中选项值,多个值用“|”隔开。对应的XML结构如下:在ACT向导中,每个属性控件都有对应的回调函数(callbacks),用于处理与用户输入间的界面交互。我们可以为Primitive属性定义合适的回调函数,然后去更改其他float控件中与可见性相关的属性值。在ACT帮助文档中,我们发现可以使用<onactivate>回调函数,而且在通过修改控件的Visible属性值,可以更改其可见性。(1)将Primitive定义为<property>,并给定“select”的control类型,通过options给定下拉选项值;(2)为Primitive属性添加回调函数<onactivate>,给定方法dynamicVisibility(函数名任取);(3)定义Length、Radius和Height三个<property>控件,并给定“float”的control类型;(4)在与XML关联的IronPython文件中实现回调函数dynamicVisibility:通过判断Primitive当前属性值(Value),然后修改相应float控件的可见性(Visible)属性;代码如下:XML定义方式更简单上手,如果只需要更改属性控件显示时,推荐使用。回调函数方法更强大,不仅可以动态显示控件,还能更改帮助内容、与图形窗口交互等。而且二者可以配合使用,大家可以根据使用场景灵活选用。最后,在后期文章更新中,我会分享ANSYS ACT开发系列文章,大家有关心的技术点和问题,欢迎大家参与读者讨论,后续文章会根据大家内容讨论的热度决定更新顺序。