如何使ttk.Treeview可编辑?

时间:2019-09-11 00:12:37

标签: python tkinter treeview ttk

这里是编程初学者,我受命做有关python中UI的作业。该任务是一种创建,更新和删除系统(不包括数据库)的任务,但它必须具有OOP。因此,我决定在python中使用null_na=function(vector){ new_vector=rep(NA,length(vector)) for(i in 1:length(vector)) if(vector[i]== ""){new_vector[i]=NA}else if(is.na(vector[i])) {new_vector[i]=NA}else{new_vector[i]=vector[i]} return(new_vector) } 。使创建和删除工作并没有太大的麻烦,但是当我尝试执行更新功能时,我迷路了,到目前为止,我没有尝试过。

关于我尝试过的问题,我尝试将答案应用于How to make ttk.Treeview's rows editable?。但是我不明白,因为我还只是个初学者 我见过的所有其他数据库都使用数据库,这是本作业中不允许的。

关于我的代码,它很短:

ttk.Treeview

至于我的预期结果,我希望表中的选定行在按下按钮时会更新。

2 个答案:

答案 0 :(得分:0)

我相信您要查找的单词应该“更新” Treeview项目,而不是可编辑的。来自the docs

  

item(item,option = None,** kw)

     

查询或修改指定项目的选项。

     

如果没有给出选项,则返回带有该项目的选项/值的字典。如果指定了option,则该选项的值为   回到。否则,将选项设置为相应的值,例如   由kw给出。

因此,对于您的情况,您已经通过tview.selection()[0]检索了iid。使用item方法来修改记录:

def updatetreeview():
    selected_item = tview.selection()[0]
    tview.item(selected_item,text=e1.get(), values=(e2.get(),e3.get(),e4.get()))

...

b2 = Button(master, text="Update", width="25",command=updatetreeview)

...

答案 1 :(得分:0)

您用于更新Query being blocked: "insert INTO ENTITY (reference, seq, data) VALUES($1, $2, $3) ON CONFLICT ON CONSTRAINT ENTITY_c DO UPDATE SET data = $4", Blockking query: delete from ENTITY_INDEX where reference = $1 中内容的功能不完整,您必须使用row来更新treeview.selection()中的内容之后,您正在使用treeview item方法来检索内容。 {1}}。

已向更新功能添加treeview处理以提示您选择要更新的错误,否则将输出错误。

在添加或更新exception之后,还必须清除该条目。

treeview