【问题标题】:Is it possible to connect to signals in a Gtk/GObject app without a reference to the sender widget?是否可以在不引用发送器小部件的情况下连接到 Gtk/GObject 应用程序中的信号?
【发布时间】:2016-06-14 15:18:05
【问题描述】:

我正在用 Python(Lutris,Github 上提供)构建一个 Gtk 应用程序,我在应用程序的一部分中发出自定义信号,我想在应用程序的完全不同部分连接到该信号,其中接收器没有对发出信号的小部件的引用。

我正在寻找一种方法来获得信号,即使没有对小部件的引用,应用程序的任何小部件都可以连接到它。这可能与GObject有关吗?还是我需要使用其他东西,也许是 DBus?

【问题讨论】:

  • Python 不会将发送小部件作为回调的第一个参数发送吗?

标签: python gtk


【解决方案1】:

在对该问题进行了更多研究后,我找到了可行的解决方案。

在接收小部件上,可以使用GObject.add_emission_hook 代替connect,具有以下内容:

GObject.add_emission_hook(SenderType, 'signal-name', on_signal_callback)

与传统的回调不同,这个回调必须返回 True 否则它只会工作一次。

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    相关资源
    最近更新 更多