在 PyGTK 中创建新信号,您需要使用 gobject.Signal
类。以下是一个简单的示例,说明如何在 PyGTK 中创建新信号:
import pygtk
pygtk.require('2.0')
import gtk
import gobject
class CustomButton(gtk.Button):
__gsignals__ = {
'custom-clicked': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ())
}
def __init__(self, *args, **kwargs):
super(CustomButton, self).__init__(*args, **kwargs)
self.connect('clicked', self.on_clicked)
def on_clicked(self, widget):
self.emit('custom-clicked')
def main():
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title('Custom Signal Example')
window.connect('destroy', lambda w: gtk.main_quit())
button = CustomButton('Click me')
button.connect('custom-clicked', on_custom_clicked)
window.add(button)
window.show_all()
def on_custom_clicked(widget):
print('Custom clicked signal received')
if __name__ == '__main__':
gtk.main()
在这个示例中,我们创建了一个名为 CustomButton
的新类,该类继承自 gtk.Button
。我们在类中定义了一个新信号 custom-clicked
,并使用 gobject.Signal
类创建了该信号。然后,我们在 CustomButton
类的 __init__
方法中连接了 clicked
事件,并在该事件发生时发出 custom-clicked
信号。
在 main
函数中,我们创建了一个 CustomButton
实例,并连接了 custom-clicked
信号的处理函数 on_custom_clicked
。当按钮被点击时,on_custom_clicked
函数将被调用,并输出一条消息。
这个示例展示了如何在 PyGTK 中创建新信号,并将其与按钮的点击事件相关联。您可以根据需要修改这个示例,以创建其他类型的自定义信号。
高校公开课
云原生正发声
Elastic 实战工作坊
Elastic 实战工作坊
Elastic 实战工作坊
云+社区技术沙龙[第16期]
云+社区技术沙龙[第27期]
【产研荟】直播系列
领取专属 10元无门槛券
手把手带您无忧上云