Запустите редактирование рендерера ячеек PyGTK из кода

У меня есть древовидное представление с редактируемым CellRendererText:

self.renderer = gtk.CellRendererText()
self.renderer.set_property('editable', True)

Но теперь мне нужно запустить издание из кода, а не от пользователя, это чтобы привлечь внимание пользователя к тому факту, что он только что создал новую строку и ему нужно дать имя. Я пробовал это, но не работает:

self.renderer.start_editing(
    gtk.gdk.Event(gtk.gdk.NOTHING),
    self.treeview,
    str(index),
    gtk.gdk.Rectangle(),
    gtk.gdk.Rectangle(),
    0)

Ни один из них не выдает ошибок, но документация о том, для чего нужен каждый аргумент, не ясна, на самом деле я действительно не знаю, предназначен ли для этого метод start_editing.

Все предложения приветствуются, спасибо.


person Htechno    schedule 05.04.2010    source источник


Ответы (1)


def set_cursor(path, focus_column=None, start_editing=False)

... Если указан column и start_editing имеет значение True, то редактирование должно начинаться в указанной ячейке. За этим методом часто следует метод gtk.Widget.grab_focus(), чтобы перевести фокус клавиатуры на древовидную структуру.

Источник

person Johannes Sasongko    schedule 05.04.2010
comment
Это работает как шарм, кроме того, start_editing не нужно включать. Большое спасибо. - person Htechno; 05.04.2010