首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GObject断开连接处理程序

GObject断开连接处理程序
EN

Stack Overflow用户
提问于 2020-04-26 20:33:42
回答 1查看 38关注 0票数 0

我将回调处理程序on_fader_finished连接到我的GObject推子:

代码语言:javascript
复制
fader.connect("animation-finished", self.on_fader_finished)

现在,我希望回调处理程序在被调用后断开连接。

代码语言:javascript
复制
def on_fader_finished(self, fader):
    fader.disconnect(???)

不幸的是,disconnect函数需要将处理程序id作为参数传递。

当然,我可以尝试在连接回调处理程序时以某种方式保存处理程序id,然后检索它,但在我的例子中,这是相当复杂的,因为同一个处理程序函数可能动态地连接到多个GObjects。

如果回调可以简单地断开自身与GObject的连接,就会容易得多。因为我的GObjects通常只有一个回调处理程序,所以断开所有处理程序也是一个很好的解决方案。

这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-27 02:17:01

您应该能够使用GObject.signal_handlers_disconnect_by_func()。类似于:

代码语言:javascript
复制
fader.signal_handlers_disconnect_by_func(self.on_fader_finished)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61440855

复制
相关文章

相似问题

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