Pyside / PyQt:' Global'窗口小部件?

时间:2014-07-24 09:36:51

标签: python widget pyqt pyside

我正在PySide中制作一个简单的绘图应用程序。

主窗口有一个chart小部件,其中包含我的情节figure

还有其他各种小部件和对话框需要访问chart小部件来改变figure的属性(外观,绘图数据等...)。

目前,我的小部件需要在初始化时将chart的实例传递给它们...这是允许所有内容与chart对话的可怕方式,因为有这样的链参考传递。

有没有办法让chart小部件'全局'/可以从任何小部件访问?

我考虑过在主窗口之外创建一个chart的单例 - 为什么这会是一个坏主意?

1 个答案:

答案 0 :(得分:2)

另一种选择是通过signals and slots进行通信,因此主窗口有一些插槽(绘制,绘制,......),其他每个小部件都有一个信号(我想要绘制它)和然后你连接信号和插槽。这可能是解耦最多的解决方案,我更喜欢它。

您可以使用全局。没问题。 Global variables are bad本身,但如果这不打扰你,那就去吧。

最后 user3419537 的想法似乎是一件好事。您可以将属于一起的所有窗口小部件捆绑在一个类中,然后作为类成员访问图表窗口小部件。这可能比全球更好。