2010-06-29 79 views
5

我想创建一个包含样本的x和y坐标的简单GUI。我使用treeview,我希望表格的单元格可以由用户编辑。是否可以指定单元格是否可以直接在Glade中的cellrenderer属性中编辑,还是必须在我的代码中指定它?我使用Glade 3.6.1使用Glade在Gtk treeview中创建具有可编辑单元格的列

我刚刚发现,在编辑我的树视图时,在树视图编辑器中不使用框“可编辑”,使我能够指定单元格是否可编辑,因为如果框未被选中,单元格可编辑属性不再与模型连接。 但是,如果我运行该程序,单元格是可编辑的,但是我写入的值将消失。我该如何解决这个问题?为什么单元格不存储我输入的值?

感谢您的任何提示

回答

3

对于任何处理类似的问题,我已经解决了这个问题 - 当一个细胞被编辑,需要在模型中相应的记录进行更改,在Python代码示例:

cell.connect("edited", self.text_edited, model, column) 

def text_edited(self, w, row, new_text, model, column) 
    model[row][column] = new_text 
+1

您被允许接受您自己的答案! ;-) – ptomato 2010-08-26 22:36:10

0

我发现我不得不做一些有点不同的事情,但我也在使用Ubuntu的快速开发环境。我确实必须进入格莱德,并取消选中我的cellrenderer中的“可编辑”框,然后调出一个可切换的“是/否”按钮。然后我的代码如下:

#psuedo-code function definition 
cellcolumn_widget.connect("edited", self.function, list_or_treestore, columnnumber) 

#actual code, editing second column so column is passed as 1 
self.builder.get_object("cellrenderer_chapter").connect("edited", self.cell_edited, self.builder.get_object("liststore_chapters"),1) 

def cell_edited(self, widget, row, new_text, model, column): 
    model.set_value(model.get_iter(row),column,new_text) 
相关问题