我有一个相当复杂的MVC结构化应用程序,我想要一种方便的方法来从它的几乎任何部分更新QStatusBar。我的理解是,我必须传递大量对QStatusBar的引用或在我的控制器中设置一堆信号。它会变得混乱。
我也明白QApplication本质上是一个单身人士。向它添加一个插槽是否可以接受,以便我可以从任何地方获取QApplication的实例并发出它?
或者,在我的应用程序中传达全局事物的合理方法是什么,而不会在控制器和视图中乱丢参与其他地方的小部件?
答案 0 :(得分:1)
如何实现单例,允许组件和gui之间的通信,如:
#include <statuscontroller.h>
StatusController::instance()->setStatus("Status string");
在这种情况下,只有StatusController包含指向QStatusBar的指针,并且在gui线程中全局可用。
使用QObject作为StatusController的基类,您可以使用信号和插槽。