На самом деле это довольно просто, но вам нужно несколько хаков.
Сначала вам нужно заставить Gtk создать кнопку заголовка для GtkTreeViewColumn:
label = gtk.Label("Column title")
label.show()
treeview_column.set_widget(label)
После этого вынужно извлечь внутренний GtkButton заголовка:
widget = treeview_column.get_widget()
while not isinstance(widget, gtk.Button):
widget = widget.get_parent()
Наконец, со ссылкой на кнопку вы можете сделать что-то полезное:
def button_release_event(button, event):
if event.button == 3:
menu.popup(event)
widget.connect('button-release-event', button_release_event)
Это было взято из kiwi библиотека, которая имеет ObjectList , который предоставляет список python, такой как api для создания GtkTreeViews.