gpt4 book ai didi

python - pygtk gtk.Builder.connect_signals 到多个对象?

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:32 25 4
gpt4 key购买 nike

我正在更新一些代码,从使用 libglade 到 GtkBuilder,这应该是 future 的方式。

使用gtk.glade,您可以重复调用glade_xml.signal_autoconnect(...) 将信号连接到程序中不同窗口对应的不同类的对象上。但是 Builder.connect_signals 似乎只工作一次,并且(因此)对传入的第一个类中未定义的任何处理程序发出警告。

我意识到我可以手动连接它们,但这似乎有点费力。 (或者就此而言,我可以使用一些 getattr hackery 让它通过代理将它们连接到所有对象......)

没有跨多个对象连接处理程序的功能,这是一个错误吗?还是我遗漏了什么?

别人也有类似问题http://www.gtkforums.com/about1514.html我认为这意味着无法完成。

最佳答案

这是我目前拥有的。随意使用它,或提出更好的建议:

class HandlerFinder(object):
"""Searches for handler implementations across multiple objects.
"""
# See <http://stackoverflow.com/questions/4637792> for why this is
# necessary.

def __init__(self, backing_objects):
self.backing_objects = backing_objects

def __getattr__(self, name):
for o in self.backing_objects:
if hasattr(o, name):
return getattr(o, name)
else:
raise AttributeError("%r not found on any of %r"
% (name, self.backing_objects))

关于python - pygtk gtk.Builder.connect_signals 到多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4637792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com