标签可以通过使用Pango标记来链接,但是当在扩展器中使用标签时,不会发出标签上的“按钮按事件”。我想如果我创建了Expander的子类并自己发出了“button-press-event”,那么链接就会被点击。下面给出了“按钮按事件”失败的最小示例:
import gtk
def on_activate(label, uri):
print(uri)
def on_click(widget, event):
label.emit('button-press-event', event)
window = gtk.Window()
expander = gtk.Expander()
window.add(expander)
label = gtk.Label('<a href="google.com">link</a>')
label.set_use_markup(True)
label.connect("activate-link", on_activate)
expander.set_label_widget(label)
expander.connect("button-press-event", on_click)
window.connect("destroy", gtk.main_quit)
window.show_all()
gtk.mainloop()
如果我添加了print
次来电,我可以看到正在调用on_click()
,但on_activate()
未被调用。奇怪的是,如果我打印label.emit(...)
的返回值,它会打印False
。那是什么意思?我该如何点击链接?