Как мне сделать что-то, когда пользователь щелкает правой кнопкой мыши в строке дерева?Строка GtkTreeView правой кнопкой мыши
ответ
Это очень легко, просто слушать сигнал «Кнопка-пресс-событие» и использовать treeview.get_path_at_pos()
понять выбранную строку:
def button_press_event(treeview, event):
if event.button == 3: # right click
model, path = treeview.get_path_at_pos(int(event.x), int(event.y))
# do something with the selected path
treeview.connect('button-press-event' , button_press_event)
См. Также: [Глава 16: Меню] (http://python-gtk-3-tutorial.readthedocs.org/en/latest/menus.html) из учебника Python Gtk + 3.0. – phineas
Возможно, это GTK2 vs GTK3, но, согласно [pygtk 2 doc] (http://www.pygtk.org/pygtk2reference/class-gtktreeview.html#method-gtktreeview--get-path-at-pos), это должно быть что-то вроде 'путь, столбец, __, __ = treeview.get_path_at_pos (int (event.x), int (event.y))' – Zvika
Остерегайтесь: вам не обязательно нужно «button-press-event», если только ваша цель чтобы показать всплывающее меню. Если, например, вы хотите просто выполнить какое-либо действие по нажатой строке, вам понадобится «button-release-событие». Это гарантирует, что при щелчке правой кнопкой мыши по новой строке она будет выбрана (обработчик по умолчанию для «button-press-event»), прежде чем что-либо еще произойдет. –
Пожалуйста, ваши решения в качестве ответа здесь и принять его. – CodeMouse92