我有一个关于GUI设置的基本和技术性wxpython问题,这些问题是单个GUI的许多方面共同使用和访问的。
为了节省时间,我还没有剪切/粘贴大量的示例代码,但我会用文字解释。我不认为这样做会失去任何清晰度,但如果我这样做就会大喊大叫。
我有一个wxpython GUI,其主要功能是具有许多页面的笔记本,其中大部分是数据图。每个页面都是根据唯一的类定义的,虽然每个类都不同,但它们都访问相同的底层数据,因此基本上是连接的。鉴于此连接,GUI中有一些设置对于笔记本中的所有页面都是通用的。例如,各种图上的点的颜色或形状的定义。这些设置可用于定义数据的显示方式,例如汽车数据可以是红色正方形,而总线数据可以是蓝色三角形。
鉴于每个笔记本页面上的图都是在不同的类中定义的,我可以在每个类中重复这些定义。然而,这感觉就像代码重复一样,并且由于颜色/符号定义应该在所有图中都是通用的,感觉这些定义应该位于顶层GUI窗口级别而不是笔记本页面级别。
我尝试在顶级窗口中放置属性,我可以使用以下内容从笔记本页面类中访问它们:
self.GetGrandParent(self).mySymbols
GetGrandParent是一种粗略的方式来处理页面/笔记本/面板等层次结构直到主窗口。实际上可能有更多的关卡遍历而不仅仅是两个。
我的问题是,是否有一种更好的方式或更多的pythonic方式来定义GUI范围的设置或属性,一次,在顶层(例如主框架),但从较低级别(例如笔记本页面)访问它们?