【发布时间】:2019-04-06 21:32:22
【问题描述】:
我正在尝试在 PyQt 中发出自定义事件。一个小部件会发出,另一个小部件会监听事件,但这两个小部件不需要相关。
在 JavaScript 中,我会这样做
// Component 1
document.addEventListener('Hello', () => console.log('Got it'))
// Component 2
document.dispatchEvent(new Event("Hello"))
编辑:我知道信号和插槽,但只知道如何在父子之间使用它们。我将如何在任意不相关的小部件之间使用这种机制(或其他机制)?
【问题讨论】:
-
我知道信号和插槽,但只知道如何在父子之间使用它们。我将如何在任意、不相关的小部件之间使用它们?
-
您这样做的真正目的是什么?您要解决哪些具体问题?在 qt 中可以发送自定义事件,但很少需要这种功能。也很难理解为什么你只能知道如何在父母和孩子之间使用信号和槽。
-
我有一个小部件 A,其中包含一个按钮。当我按下那个按钮时,我想让灯变绿。灯离按钮很远(分层)。我必须去 Button -> Widget A -> Parent -> Parent -> Child -> Child -> Child -> Child -> Light。
-
也许我试图与我已经拥有的知识联系起来是错误的。在 React 中,我只需从 Button 更新 Redux Store 并从 light 订阅状态更改。我应该如何在 Qt 中考虑它?
-
只需将按钮的点击信号连接到改变灯光颜色的插槽即可。小部件的层次结构应该是无关紧要的。如果不是,您可能需要重组您的类。如果没有看到一些实际的代码,真的不能说更多。