繁体   English   中英

Qt中的信号共享架构

[英]Signal sharing architecture in Qt

使用MVC,我有几个视图类,所有这些都需要写入事件日志。 事件日志包含一个名为addEntry的插槽,该插槽将数据写入日志。 我正在努力实现信号。 我不想将事件日志对象传递给每个类。 我也是...

1)在每个类中创建本地信号,然后让我的主窗口将它们全部连接起来? 2)我可以将插槽设为静态,以便所有视图都可以访问它而无需事件日志对象吗? 3)创建一个信号并将其作为函数指针传递到每个类中,以便它们都可以使用相同的信号? 4)还有什么?

谢谢。

  1. 最多见下文。
  2. 否。插槽必须与类实例相关联
  3. 我怀疑交通部是否会理解这一点,而且看起来不必要地复杂。
  4. 原则上,您可以让事件沿父/子层次结构传播,并让主窗口编辑日志,但这也太复杂了。

假设您的视图类继承自QAbstractItemView,则它们已经具有可以使用的信号,特别是如果您使用Q * Widget便利类。 在您的情况下,如果这对我不起作用,请执行1)。 您可能还考虑了来自模型类的信号-毕竟,更新实际上是在这里进行的。

您不能在事件记录类中设置静态成员函数来检索事件记录实例的ptr吗? 如果仅此而已,则返回一个全局实例,

静态EventLogger * EventLogger :: getLoggerInstance();

如果您有多个事件记录器,则更为细微。

静态EventLogger * EventLogger :: getLoggerInstance(args,...);

如果视图需要挂入事件日志记录,则它将检索事件日志记录实例并连接到该实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM