Qt(PyQt)全球可用的插槽?

时间:2015-05-09 22:07:42

标签: qt pyqt

我有一个相当复杂的MVC结构化应用程序,我想要一种方便的方法来从它的几乎任何部分更新QStatusBar。我的理解是,我必须传递大量对QStatusBar的引用或在我的控制器中设置一堆信号。它会变得混乱。

我也明白QApplication本质上是一个单身人士。向它添加一个插槽是否可以接受,以便我可以从任何地方获取QApplication的实例并发出它?

或者,在我的应用程序中传达全局事物的合理方法是什么,而不会在控制器和视图中乱丢参与其他地方的小部件?

1 个答案:

答案 0 :(得分:1)

如何实现单例,允许组件和gui之间的通信,如:

#include <statuscontroller.h>

StatusController::instance()->setStatus("Status string");

在这种情况下,只有StatusController包含指向QStatusBar的指针,并且在gui线程中全局可用。

使用QObject作为StatusController的基类,您可以使用信号和插槽。