首页 > 解决方案 > 当我尝试使用 treeview 进行项目时显示语法错误

问题描述

谁能告诉我这段代码有什么问题

import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
from registration import DBConnect
class ListTicket():
    def __init__(self):
        self.db=DBConnect()
        self.root=tk.Tk()
        tv=ttk.Treeview(self.root)
        tv.pack()
        tv.heading("#0",text="ID")
        tv.column=("NAME")
        tv.column = ("GENDER")
        tv.column = ("COMMENTS")
        tv.heading("NAME",text="NAME")
        tv.heading("GENDER",text="GENDER")
        tv.heading("COMMENTS",text="COMMENTS")
        cursor =self.db.Show()
        for row in cursor:
            tv.insert("","end","#{}".format(row["ID"],text=row["ID"])) #1
            tv.set("#{}".format(row["ID"],column="NAME",value=row["name"]) #2
            tv.set("#{}".format(row["ID"],column="GENDER",value=row["gender"]) #3
            tv.set("#{}".format(row["ID"],column="COMMENTS",value=row["comment"]) #4
       self.root.mainloop()

我收到第 2、3、4 行的语法错误。我正在从数据库中获取值。

标签: pythonsqlitetkintertreeview

解决方案


就您的语法错误而言:

for row in cursor:
    tv.insert("","end","#{}".format(row["ID"],text=row["ID"])) #1
    tv.set("#{}".format(row["ID"],column="NAME",value=row["name"])) #2
    tv.set("#{}".format(row["ID"],column="GENDER",value=row["gender"])) #3
    tv.set("#{}".format(row["ID"],column="COMMENTS",value=row["comment"])) #4

您忘记在 every 末尾关闭括号tv.set()


推荐阅读