часть GtkLabel кликабельна - PullRequest
1 голос
/ 31 августа 2010

Как сделать, чтобы только часть GtkLabel имела событие clicked и вызывала функцию.

Я делаю твиттер-клиент, ведьма показывает твиты, и я хотел бы, чтобы в твите был # хэштег, и я щелкаю его, приложение показывает новое окно с поиском этого # хэштега. и я не знаю, как это сделать, просто #hashtag вызовет это событие.

1 Ответ

1 голос
/ 01 сентября 2010

Вы можете заключить кликабельную часть в теги <a> и подключиться к сигналу activate-link.

Вот пример:

import gtk

def hashtag_handler(label, uri):
    print('You clicked on the tag #%s' % uri)
    return True # to indicate that we handled the link request

window = gtk.Window()
label = gtk.Label()
label.set_markup('Unclickable line\nLine with a <a href="hashtag">#hashtag</a>\nLine with a <a href="different">#different</a> hashtag')
label.connect('activate-link', hashtag_handler)
window.add(label)
window.connect('destroy', gtk.main_quit)
window.show_all()

gtk.main()
...