首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt中的信号槽连接模型

Qt中的信号槽连接模型
EN

Stack Overflow用户
提问于 2012-01-11 08:33:04
回答 2查看 4.6K关注 0票数 0

我喜欢用UML记录我的信号插槽连接(例如特殊情况下的连接)。我使用的是企业架构师( Enterprise ),当每个类有超过5个信号和/或插槽时,它会变得非常混乱。我试过流程图组件图

流程图:我将类建模为进程,并使用端口作为信号/插槽。

组件关系图:我使用了类的组件和信号插槽的接口。

你有任何建模信号/插槽的经验吗?你有什么建议?是否有更适合信号/插槽的解决方案?

查莉

EN

回答 2

Stack Overflow用户

发布于 2012-01-11 13:29:03

我一直使用序列图,因为我找到了显示对象之间流传输的“生命线”系统,这是一种与信号/插槽模式相适应的自然方式。链接到上面的维基百科文章的引文:

序列图以平行线(生命线)的形式显示同时存在的不同进程或对象,并以水平箭头的形式显示它们之间按发生顺序交换的消息。这允许以图形方式指定简单的运行时场景。

似乎同意这一观点,而且很容易读懂。

至于调用时隙的顺序,Qt文档澄清这一点

如果多个时隙被连接到一个信号上,则当信号发出时,这些时隙将按其已连接的顺序依次执行。

时间是一个相对的术语,可以用来指代你想要的任何东西:只要你对你正在交流的内容保持一致和清晰,就没有人会介意。

票数 1
EN

Stack Overflow用户

发布于 2021-11-24 19:54:11

在一个简单的类图中,您需要记录类(或接口)和信号之间的关系:

  • 带有带有关键字«signal»的分类器符号的«signal»。它可能具有用与消息内容相对应的属性表示的参数。
  • 信号通常是通过操作发送的。这是用从相关操作到信号的«send»依赖来表示的。
  • 类可以指示它可以使用接收处理给定的信号,例如,类似于一个操作,但前面有«signal»,并将其命名为信号,其属性出现在其参数列表中。接待处可以在单独的隔间中可视地分开。这对应于Qt槽

在活动图中(从UML的角度看,它比“流程图”更好,因为流程图不是UML的,也不是标准化的),您可以指定信号的动态:

  • 发送对象节点,对应于在活动流中发送的信号。
  • 接受事件节点,对应于可能接收到的信号和发生时的后续操作。
  • 您可以使用依赖项将这两者连接起来,但不必这样做(特别是在多个对象之间发送/接受了许多信号时)。

最后,这种建模的优点是,您可以使用信号作为状态图中的事件,并以非常简单的、独立于实现的抽象方式来表达相当复杂的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8816310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档