TagGroup
.
。
类中?
Inter-tab通信:
如果我想要选项卡A类的更改方法来控制或影响B类中的某些内容,那么实施此操作的最佳方法是什么?有可能吗?
-
fraged尝试和观察:
- i最初尝试将所有小部件函数和侦听器直接放入一个大型类中,这导致了重复的函数名称和一个纠结的代码库。
然后,然后将每个选项卡分为自己的类别,但是在定义更改方法和听众中,我遇到了协调选项卡之间的交互的困难。
以实例,将侦听器放在标签类中有时会隔离事件处理,这使一个选项卡在另一个选项卡的UI元素中很难触发更改。
地,如果有人对如何使
uiframe
类提出更优雅或有任何Python代码或库可以轻松生成Gatan UI的建议,请让我知道。
-
您发现,定义自定义DM对话框的属性和行为的类本质上很长,并且可能变得很复杂。我认为没有任何方法可以真正避免这种情况。任何这样的自定义对话框类通常都将定义和实施数十种方法。但是,这些成员方法可能是使对话框代码模块化的最大希望。
您的问题可能比您可能意识到的要远得多,您可能需要将其分为几个部分才能涵盖所涉及的所有细节。然而,我将首先提供高级策略以及有关类,对象和功能的一些澄清。
肯定是一个好主意,将基于uiframe类的任何DM对话框的各个组件的生成模块化。通常可以通过在一个人的自定义对话框中定义的函数(方法)进行操作。
首先,关于概念和术语的一些一般评论。意识到uiframe是一个基类是很有帮助的,并且一个人写的代码来定义,姿势和支持自定义对话框是该基类的扩展。我们说,一个人的自定义对话框类是“源自” uiframe。当一个人在自定义对话框类中调用Alloc()时,这将返回一个对象,该对象是一个人的自定义对话框类的特定实例,即带有Active事件处理的显示和运行UI面板。请注意,可以使用相同的自定义对话框(uiframe-derived)类启动给定对话框的多个实例。
回到您有关定制对话框中的TAB代码的特定问题,您用来描述要实现的目标[...使用一个类构建一个选项卡(称为TAB类)(返回TagGroup)]很揭示。他们描述的实际上是函数的作用,即它返回一个标签元素描述符的taggroup。因此,我的建议是简单地用不同的函数定义每个对话框选项卡(即自定义对话框类的方法)。如果它们足够相似,您甚至可以参数化标签定义函数,以便您可以使用它来返回每个特定标签的(不同的)描述符taggroup。
对于您有关事件处理的问题(即更改方法和听众),最终,这些方法始终需要成为您自定义对话框类的一部分,因为DM始终通过引用您对特定对话框对象的引用(即您的自定义对话框类别的给定实例)来调用更改方法)。当然,这些事件处理方法最终可以使用其他方法/函数(甚至其他对象)来执行其工作,但是您需要在自定义对话框类中定义和实现DM中DM的方法,以响应自定义GUI对象中的事件和更改。