如何在连接任何内容之前了解这一点。
例如
does_signal_exist(widget, signal):
pass
button = Gtk.Button()
does_signal_exist(button, "clicked") # returns True
does_signal_exist(button, "hello") # returns False
does_signal_exist(button, "unboxed") # returns False
does_signal_exist(button, "button-press-event") # returns True
答案 0 :(得分:1)
有一个名为'manual'或'reference'的奇妙工具。查找Gtk-3.0手册,然后点击Classes,然后查找Gtk.Button。寻找Signals。如果不存在,则可以对从先前对象继承的信号执行相同的操作。
使用help(button
甚至help(Gtk.Button)
(在Python3中,无论是在交互式还是在程序中),您都可以访问所有方法,以及有关该类和实例的许多其他信息。
使用上面提到的手册,查看GiRepository模块 - 这些函数可用于查看Gtk及其类和属性。
您可以检查它是否有效:使用try:/except:
检查您是否可以实际连接到您感兴趣的信号/事件。
答案 1 :(得分:0)
def does_signal_exist(gtkWidgetObj, sigTag):
try:
gtkWidgetObj.emit(sigTag)
return True
except:
return "unknown signal name" not in format_exc():