Сигналы GtkTreeView, активируемые строкой и изменяемые курсором

У меня есть древовидная структура, и я наблюдаю за сигналами cursor-changed и row-activated. Проблема в том, что для того, чтобы активировать строку, мне сначала нужно щелкнуть строку (запуская cursor-changed), а затем сделать двойной щелчок, требующий 3 щелчков.

Есть ли способ ответить на оба сигнала двумя кликами?


person Rob    schedule 13.02.2010    source источник


Ответы (2)


Не очень понятно, чего вы пытаетесь достичь. Я предполагаю, что вы пытаетесь ответить пользователю, изменяющему выбор в дереве.

В этом случае подключитесь к сигналу [changed][1] на gtk.TreeSelection:

selection = treeview.get_selection()
selection.connect('changed', self.on_treeview_selection_changed)

Насколько я могу судить, это невозможно с помощью дизайнера интерфейса Glade.

Если, однако, вы пытаетесь сделать что-то совершенно другое, пожалуйста, добавьте дополнительную информацию.

person Jon    schedule 23.06.2010
comment
Есть ли способ подключить этот сигнал от Glade? - person umpirsky; 01.01.2012

Сигнал cursor-changed испускается даже при одиночном щелчке по одной и той же (выбранной) строке. Тем не менее, сигнал row-activated испускается, когда вы дважды щелкаете по строке, независимо от того, была ли она выбрана до двойного щелчка или нет. Таким образом, вам не нужно 3 клика, чтобы вызвать row-activated.

Как упоминал Джон, вы хотите подключиться к сигналу changed выделения вместо cursor-changed.

person Walter    schedule 23.06.2010