从代码启动PyGTK单元渲染器编辑

5 投票
1 回答
1405 浏览
提问于 2025-04-15 21:14

我有一个树形视图,里面有一个可以编辑的文本单元格:

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方法是否适合这个用途。

欢迎任何建议,谢谢。

1 个回答

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

... 如果指定了column,并且start_editing设置为True,那么编辑就应该在指定的单元格开始。这个方法通常会接着使用gtk.Widget.grab_focus()方法,以便将键盘焦点给树视图。

来源

撰写回答