【发布时间】:2021-02-25 20:01:34
【问题描述】:
我刚开始使用 PyQt5,希望能得到一些帮助。我有一个小部件 W,它响应从某个类 C 派生的所有对象的信息。小部件 W 只能由 C 类的对象更新,并且在更新期间,它必须知道哪个特定对象触发了它。
问题是 C 类的对象可能会在整个程序过程中继续创建。是否可以将信号/槽范式应用于此问题?
到目前为止我的想法:
- 理想情况下,我会将 W 上的插槽连接到 C 上的类变量。但是,Qt 不允许将信号作为类变量。
- 我可以使用集合对象 CO,这样任何新对象 C 都必须通过该对象的接口创建。然后我在这个对象上定义一个信号,它将连接到 W 上的一个插槽。然而,这很丑,因为 CO 的存在只是为了解决这个问题。
- 我可以完全放弃信号/槽范例,而只需将 W 的回调(槽)添加到 C 上的类变量中。然后,每当创建新对象 C 时,它就已经具有对回调的引用。李>
【问题讨论】: