2010-06-29 80 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) 
相關問題