是否隐藏 QWidget 对象接收信号

Posted

技术标签:

【中文标题】是否隐藏 QWidget 对象接收信号【英文标题】:Is Hidden QWidget object receives signals 【发布时间】:2013-06-14 12:36:52 【问题描述】:

简单查询:

如果 GUI 小部件窗口被隐藏,它会接收来自其他对象的信号吗? 在我们的 Qt 应用程序中,我们已经看到了这个问题/行为。

但是,当显示窗口时,它会接收并处理它接收到的所有信号。

【问题讨论】:

“已经看到这个问题” - 你是否暗示当窗口被隐藏时你没有收到它们? 是的,我看到奇怪的行为,窗口被隐藏它无法处理待处理的信号。 正如两个答案中提到的,信号会继续被处理,除非你断开它们。您能否提供更多关于您正在建立的连接以及最小化时应该发生什么的详细信息,最好包括代码示例? 【参考方案1】:

每个 QObject(以及每个 QWidget)都会接收信号,直到它被销毁或信号断开。可见性并不重要。

【讨论】:

【参考方案2】:

如果您在隐藏 QWidget 时未断开信号,则会接收并处理它们。

【讨论】:

如果您需要再次使用相同的信号,也许blockSignals(bool) 会是最好的选择。但你是对的,断开信号是一个好方法

以上是关于是否隐藏 QWidget 对象接收信号的主要内容,如果未能解决你的问题,请参考以下文章

QWidget::repaint:更新进度条时检测到递归重绘

信号和槽

QT学习_常用类及信号和槽

我的路由器显示有信号,但是接收不了怎么办?

QGraphicsView 或 QWidget 完成绘制或渲染时是不是存在信号或事件?

QT学习-标准信号窗口和槽