在我的PyGTK应用程序中,我目前使用'editable'来使单元格可编辑。但由于我的单元格内容有时非常大,我想在用户双击单元格时要求用户更改新窗口。但我无法找到如何挂钩双击特定的cellrenderers - 我不想编辑整行,我也不想为整行设置此回调,仅适用于内容太长的列可以发生。我怎么能用CellRendererText()或类似的东西来做这件事。
我目前的细胞生成代码是:
cols[i] = gtk.TreeViewColumn(coltitle)
cells[i] = gtk.CellRendererText()
cols[i].pack_start(cells[i])
cols[i].add_attribute(cells[i], 'text', i)
cols[i].set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
cols[i].set_fixed_width(100)
cells[i].set_property('editable', True)
cells[i].connect('edited', self.edited, (i, ls))
cols[i].set_resizable(True)
mytreeview.append_column(cols[i])
谢谢!
答案 0 :(得分:3)
我认为这不可能直接。但是,您可以在button-press-event
上与gtk.TreeView
建立联系。然后,当event.type
等于gtk.gdk._2BUTTON_PRESS
时,使用x
将y
和gtk.TreeView.get_path_at_pos()
转换为树位置。这将返回指示行的树路径和发出单击的gtk.TreeViewColumn
对象。