如何利用子表单来组织仿真 App

Bridget Cunningham 2015年 9月 1日

组织布局是所有仿真 App 设计中的重要步骤。整齐有序的结构可以让 App 的开发过程变得更为流畅,同时也能提升用户的使用体验。今天,我们将介绍如何在 COMSOL Multiphysics 中利用子表单和表单集合来创建结构有序的 App。

整齐有序地开发 App

在开发仿真 App 时,您可以自由、灵活地定义 App 的布局来满足特定的设计需求。表单或表单对象这一类的资源可以帮助您掌控 App 用户界面(UI)设计中的全部元素,包括那些只与特定分析相关的元素。这些定制选项允许开发与 App 风格匹配的 UI,使 App 更为直观、易用。

当在 App 中添加的表单和表单对象逐渐增多后,其复杂度也随之提高,因此在开发过程中始终保持 App 结构的整齐有序就变得尤为重要,这会帮助您顺利地完成整个开发流程。表单集合和子表单是保证 App 结构有序的有力工具,开发者和终端用户都能从中获益。

表单对象中重点显示的子表单。
红框内为“子表单”及其表单对象。要在一个 App 界面中使用多个表单则必须添加这些表单对象。

App 开发器简介视频系列的第 3 部分中,我们演示了如何使用子表单创建整齐有序的仿真 App。您还能学习到如何重命名表单和表单对象——这是仿真 App 的设计过程中最实用的操作。

扩展阅读和相关视频

视频文稿

在之前的两个视频中,我们开发了一个简单的 App,然后在 App 中增加了含保存选项的菜单栏。现在,我们将在 App 中增加更多表单对象,我们需要保证所有对象都整齐有序,从而简化 App 的开发,方便后续 App 用户的使用。本视频将介绍当 App 变得非常复杂时,如何使用表单集合及子表单来保持 App 的有序。

我将从创建一个新表单开始,即第二个表单,不过我不会增加任何输入、输出、图形或按钮。这将是一个空表单,然后插入一个文本标签。

因此,我们可以在此输入 Instructions,增加一个占位符,文本标签可以使用单行或多行文本,因此我将输入:Instructions for User。在后面几行输入:- These are instructions、- These are more instructions。这样就建好了第二个表单,主要向用户提供用法说明。接下来,我可以再创建一个空表单,这次我将增加一个表单集合。这里提供了一些表单集合选项,我可以将类型设置为:选项卡、列表或栏。我将保留选项卡设定,然后选择面板。我将增加 form1 和 form2 作为两个面板。将它们拖到窗口上部。同样,类似于我们在 form1 中创建的原始 App,我会将这一表单设为响应型表单,我会将这一列设为增长列,将这一行设置为增长行。在表单集合中,我会将“对齐”设为“填充”,然后将“宽度与高度”设为“自动”。

不过,操作还没有结束,点击“主窗口”,在设定窗口的“主表单”栏。列出了运行 App 时将显示的表单,因此,现在只会显示 form1。我要做的是将主表单改为 form3。

现在我可以测试 App,预览这个表单集合。这里显示了 form1 及包含用法说明的 form2,如果我重新调整窗口大小,图形窗口也将随之调整。现在我将介绍一项最佳操作建议:正如您看到的,我创建了 form1、form2 和 form3,form3 中也列出了 form1 及 form2。

如果我们创建了 10 – 15 个表单,可能会无法区分这些表单,这会造成一些困扰。让我们重命名其中的一些表单,我将从 form1 开始,在名称和标题编辑框,分别输入小写的 main 和大写的 Main。这样,您将在 App 开发器中看到小写的 main,在 form3 的表单集合中看到大写的 Main。main 是表单的内部名称,用于从其他表单的对象和方法中引用这一表单。Main 是运行 App 时的外部名称,现在,我将对 form2 和 form3 进行相同的操作。首先是帮助表单,接着是表单集合。

请注意,当重命名表单或其他表单对象时,可能会影响一些功能。例如,“更新几何”按钮的“选择运行命令”栏,参变量设为 form1/graphics1。但现在 form1 已经不存在了,需要将参变量重设为 main/graphics1,操作完成,计算按钮只引用了 graphics1,所以无需更改。如果同时修改了图形窗口的名称,那就还需要修改计算按钮。

现在,让我们来学习一下子表单对象:表单。我们将使用这里的输入参数来演示这一功能。如果希望新增加一个输入参数,我可以在下方再插入一行,但您将发现新插入的行会穿过按钮,这看起来有些奇怪。为了解决这一问题,我会首先按下 CTRL+Z 取消操作,全选这些单元,右击并选择“提取子表单”,我还可以点击功能区的“提取子表单”按钮,这会抓取所有的表单对象,然后新建一个表单。我将按照之前的思路,将表单重命名为 inputs。现在,当我在下方插入一行时,只需要处理这三个单元格。

现在来创建这一输入参数,我将增加一个“文本标签”,命名为 Thickness,然后增加“输入框”,我会将名称改为 thickness,然后前往“模型 > 全局定义 > 参数”,然后将它用作源。点击这个按钮,指示输入框表单对象从底层模型中获取厚度参数。现在我将前往“数据确认”栏,同对其他输入编辑框的操作类似,我将选择“在数值后增加单位”,然后将单位设为 mm。最后,我需要增加实际的单位。这次我没有选择“固定”,而是将它设为“来自输入框”,我们可以看到 thickness 输入框。这里再次用到了之前的重命名操作,输入参数增加完毕。

为了增加一些趣味,我将再增加一些对象,我会在右面插入一列,合并单元,然后插入“线”。“线”的操作很简单,将它设为垂直,然后在下方插入一行,合并单元,插入另一条线。最后我将在上方插入一行,再次合并单元,插入“文本标签”作为表头。我将它命名为 Input Parameters,为了更有趣一些,我会稍微更改一下它的外观。选择定制颜色,这里有非常漂亮的COMSOL 风格的蓝色,将缺省字体尺寸设为 16,然后选择粗体。返回 main 表单,现在就可以看到我们对子表单的更新,它不会干扰其他表单对象,因此能保持结构的有序。

让我们重新运行 App 来看一下这些更新,我们现在有了非常漂亮的标题和第四个输入参数。我们可以修改厚度,然后更新几何。


博客分类

加载评论……

博客分类


博客标签