2010-05-12 48 views
2

在我的PyGTK应用程序中,我当前使用'editable'来使单元格可编辑。但是由于我的单元格内容有时真的很大,我想在用户单击单元格时在新窗口中询问用户的更改。但我找不到如何钩住特定cellrenderers的双击 - 我不想编辑整行,也不想为整行设置此回调,仅适用于内容过长的列可能发生。我怎么能用CellRendererText()或类似的东西来做到这一点。PyGTK:双击CellRenderer

我目前细胞生成的代码是:

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]) 

谢谢!

回答

3

我相信这是不可能的。但是,您可以连接gtk.TreeView上的button-press-event。然后,当event.type等于gtk.gdk._2BUTTON_PRESS时,使用gtk.TreeView.get_path_at_pos()xy转换为树位置。这将返回一个指示该行的树形路径和gtk.TreeViewColumn对象,在该对象上进行点击。

+0

非常脏:-D - 但是,如果它是唯一的可能性... ;-) – 2010-05-12 19:49:29

+1

这也适用于使Pixbufs可点击。 – Eldelshell 2010-05-20 16:52:40