删除tkinter treevi中的未知列

2024-06-16 20:29:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个树视图,但我有一些问题:

我正在获取数据,它显示在treeview中,但是缺少第一个值listResult[1](它在未定义的列中向左移动)。。。这里有什么问题?没有名字的那列是什么? 另外,当我在value=(listResult[1]...之前添加一个加法时,例如value=("",listResult[1]...。。。值转移问题解决了,但未知列仍然存在。。。 enter image description here ''

def findAllResult():

findAllResultInfo1=resultsFindAllFirstNameEntered.get()
findAllResultInfo2=resultsFindAllLastNameEntered.get()
findAllResultInfo3=resultsFindAllCategoryEntered.get()
if findAllResultInfo3=="Chemistry":
    resultsTree_1["columns"]=("#0","1","2","3","4","5")
    resultsTree_1.column("#0", width=50, minwidth=25)
    resultsTree_1.column("1", width=50, minwidth=25)
    resultsTree_1.column("2", width=50, minwidth=25)
    resultsTree_1.column("3", width=50, minwidth=25)
    resultsTree_1.column("4", width=50, minwidth=25)
    resultsTree_1.column("5", width=50, minwidth=25)
    resultsTree_1.heading("#0",text="ID",anchor=tk.W)
    resultsTree_1.heading("1",text="First Name",anchor=tk.W)
    resultsTree_1.heading("2",text="Last Name",anchor=tk.W)
    resultsTree_1.heading("3",text="3",anchor=tk.W)
    resultsTree_1.heading("4",text="4",anchor=tk.W)
    resultsTree_1.heading("5",text="5",anchor=tk.W)
    findAllResSQL="SELECT * FROM openlaboratory.lab_res_chem WHERE res_chem_f_name = %s AND res_chem_l_name = %s;"
    mydb=connectToServer(serverSettingsUser,serverSettingsPassword,serverSettingsPortNumber,serverSettingsHost)
    mycursor=mydb.cursor()
    mycursor.execute(findAllResSQL,(findAllResultInfo1,findAllResultInfo2, ))
    findAllResResult=mycursor.fetchall() 
    i=0
    for listResult in findAllResResult:
        resultsTree_1.insert("", i, text=listResult[0], values=( listResult[1],listResult[2],listResult[3],listResult[4],listResult[5]))
        =i+1

Tags: textgetvaluecolumnreswidthtkanchor
1条回答
网友
1楼 · 发布于 2024-06-16 20:29:44

我最清楚的是,它在引用命名列或索引位置之间产生了冲突,如https://stackoverflow.com/a/51746617/4777984中所述。你知道吗

复制于:

import tkinter as tk
import tkinter.ttk as ttk

master = tk.Tk()

resultsTree_1=ttk.Treeview(master)
resultsTree_1["columns"]=("#0","1","2","3","4","5")

resultsTree_1.column("#0", width=50, minwidth=25)
resultsTree_1.column("1", width=50, minwidth=25)
resultsTree_1.column("2", width=50, minwidth=25)
resultsTree_1.column("3", width=50, minwidth=25)
resultsTree_1.column("4", width=50, minwidth=25)
resultsTree_1.column("5", width=50, minwidth=25)
resultsTree_1.heading("#0",text="ID",anchor=tk.W)
resultsTree_1.heading("1",text="First Name",anchor=tk.W)
resultsTree_1.heading("2",text="Last Name",anchor=tk.W)
resultsTree_1.heading("3",text="3",anchor=tk.W)
resultsTree_1.heading("4",text="4",anchor=tk.W)
resultsTree_1.heading("5",text="5",anchor=tk.W)

resultsTree_1.pack()

master.mainloop()

enter image description here

删除额外的"#0"似乎可以纠正这一点:

resultsTree_1["columns"]=("1","2","3","4","5")

enter image description here

有趣的是,在数字前面加一个#也可以纠正这个问题:

import tkinter as tk
import tkinter.ttk as ttk

master = tk.Tk()

resultsTree_1=ttk.Treeview(master)
resultsTree_1["columns"]=("#0","#1","#2","#3","#4","#5")
names = ("ID", "First Name", "Last Name", "3", "4", "5")

for c, t in zip(resultsTree_1["columns"], names):
    resultsTree_1.column(c, width=50, minwidth=25)
    resultsTree_1.heading(c, text=t, anchor=tk.W)

resultsTree_1.pack()
master.mainloop()

相关问题 更多 >