当我试图显示分层数据时,treeview遇到了一些问题。理想的产出如下:
但我的代码生成了以下树视图:
请在下面找到我的代码的相关部分:
import tkinter
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from ttkbootstrap import Style
root = Tk()
style = Style("superhero", master=root)
root.wm_iconbitmap(get_ico())
root.title('Alegység kezelyő')
root.geometry('700x650')
def machineQuery():
for i in query_tree.get_children():
query_tree.delete(i)
root.update()
conn = connectMe()
cur = conn.cursor()
cur.execute("SELECT gepszam_id, azonosito, megnevezes FROM gep")
records = cur.fetchall()
print_records_id = ''
print_records = ''
for record in records:
print_records_id = record[0]
print_records = '"' + str(record[2]) + '" "' + str(record[1]) + '"'
query_tree.insert(parent='', index='end', iid=print_records_id, values=print_records,open=False)
conn.close()
def mainQuery():
conn = connectMe()
cur = conn.cursor()
cur.execute("SELECT gep_egyseg.gepszam_id, gep_egyseg.gepegyseg_id, gep_egyseg.egyseg_megnevezes FROM gep_egyseg JOIN gep ON gep_egyseg.gepszam_id = gep.gepszam_id")
records = cur.fetchall()
print(records)
print_records_id = ''
print_records = ''
for record in records:
print_records_id = record[1]
for_iid=str(record[0]) + "." + str(print_records_id)
print_records = '"' + str(record[2]) + '" "' + ' ' + '"'
query_tree.insert(parent='', index='end', iid=for_iid, values=print_records,open=False)
query_tree.move(for_iid, record[0], END)
conn.close()
def query():
machineQuery()
mainQuery()
query_scrollbar = ttk.Scrollbar(root, orient = VERTICAL)
query_tree = ttk.Treeview(root, yscrollcommand = query_scrollbar.set)
query_scrollbar.configure(command = query_tree.yview)
query_scrollbar.grid(row = 3, column = 2, sticky = NS)
query_tree['columns'] = ("Name", "Machine_id")
query_tree.column("#0", anchor = W, width = 20, stretch=NO)
query_tree.column("Machine_id", anchor = W, width = 100, minwidth = 50)
query_tree.column("Name", anchor=W, width = 150, minwidth = 75)
query_tree.heading("0", text = " ")
query_tree.heading("Machine_id", text = "Gép azonosító")
query_tree.heading("Name", text = "Név")
query_tree.grid(row =3, column = 0, columnspan=2, sticky= NSEW)
query()
root.mainloop()
我知道这只是一个美学问题,但它确实困扰着我
谢谢你的帮助
编辑: 包含一些示例数据的版本:
import tkinter
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from ttkbootstrap import Style
root = Tk()
style = Style("superhero", master=root)
#root.wm_iconbitmap(get_ico())
root.title('Alegység kezelyő')
root.geometry('700x650')
def machineQuery():
for i in query_tree.get_children():
query_tree.delete(i)
root.update()
records = [(1, 'Some_uniqe_data1', "Machine1"), (15, 'Some_uniqe_data2', 'Machine2')]
print_records_id = ''
print_records = ''
for record in records:
print_records_id = record[0]
print_records = '"' + str(record[2]) + '" "' + str(record[1]) + '"'
query_tree.insert(parent='', index='end', iid=print_records_id, values=print_records,open=False)
def mainQuery():
records = [(1, 1, 'Sub_component1'), (15, 2, 'Sub_component2'), (15, 3, 'Sub_component3')]
print(records)
print_records_id = ''
print_records = ''
for record in records:
print_records_id = record[1]
for_iid=str(record[0]) + "." + str(print_records_id)
print_records = '"' + str(record[2]) + '" "' + ' ' + '"'
query_tree.insert(parent='', index='end', iid=for_iid, values=print_records,open=False)
query_tree.move(for_iid, record[0], END)
def query():
machineQuery()
mainQuery()
query_scrollbar = ttk.Scrollbar(root, orient = VERTICAL)
query_tree = ttk.Treeview(root, yscrollcommand = query_scrollbar.set)
query_scrollbar.configure(command = query_tree.yview)
query_scrollbar.grid(row = 3, column = 2, sticky = NS)
query_tree['columns'] = ("Name", "Machine_id")
query_tree.column("#0", anchor = W, width = 20, stretch=NO)
query_tree.column("Machine_id", anchor = W, width = 100, minwidth = 50)
query_tree.column("Name", anchor=W, width = 150, minwidth = 75)
query_tree.heading("0", text = " ")
query_tree.heading("Machine_id", text = "Some_Unique_Datas")
query_tree.heading("Name", text = "Name")
query_tree.grid(row =3, column = 0, columnspan=2, sticky= NSEW)
query()
root.mainloop()
根据提供的数据,我做了以下更改:
#0
作为Name
列record[0]
作为mainQuery()
内parent
选项的值以下是所需的更改:
结果是:
相关问题 更多 >
编程相关推荐