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