这里是编程初学者,我受命做有关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
至于我的预期结果,我希望表中的选定行在按下按钮时会更新。
答案 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