_tkinter.TclError:命令名称无效" .63347536"

时间:2017-07-23 01:58:56

标签: python exception tkinter

关闭Python3程序时,我得到上面的错误代码。程序运行正常。

var rid3 = objRecord3.save({
    ignoreMandatoryFields: true
});

关闭此程序时,我收到以下错误:

import sqlite3
import tkinter   #import gui library

global T1,T2,T3,T4,T5,T6,List1
global BCDB,curVehicle
BCDB = sqlite3.connect('DB.sqlite')
curVehicle=BCDB.cursor()

def CreateWindow():
    global main1
    main1=tkinter.Tk()
    main1.wm_state('zoomed')
    main1.title="System"

def CreateUI():
    global T1,T2,T3,T4,T5,T6,List1
    CMDMkTable=tkinter.Button(main1,text="Create Table")
    CMDDlTable=tkinter.Button(main1,text="Delete Table")
    CMDAddRec=tkinter.Button(main1,text="Add Data")
    CMDChngCol=tkinter.Button(main1,text="ChangeColor")#command=lambda: 
    ChangeColor(T6.get())
    CMDgetData=tkinter.Button(main1,text="Get Data",command=getData)

    tkinter.Label(main1, text="Car Code").grid(row=1)
    T1=tkinter.Entry(main1)
    T1.grid(row=1,column=1)
    tkinter.Label(main1, text="Lic No").grid(row=2)
    T2=tkinter.Entry(main1)
    T2.grid(row=2,column=1)
    tkinter.Label(main1, text="Make").grid(row=3)
    T3=tkinter.Entry(main1)
    T3.grid(row=3,column=1)
    tkinter.Label(main1, text="Model").grid(row=4)
    T4=tkinter.Entry(main1)
    T4.grid(row=4,column=1)
    tkinter.Label(main1, text="No. of Seats").grid(row=5)
    T5=tkinter.Entry(main1)
    T5.grid(row=5,column=1)
    T6=tkinter.Entry(main1)
    T6.grid(row=0)


    CMDMkTable.grid(row=0,column=2)
    CMDDlTable.grid(row=1,column=2)
    CMDAddRec.grid(row=6, column=1)
    CMDChngCol.grid(row=6,column=3)
    CMDgetData.grid(row=6,column=0)


    List1=tkinter.Listbox(main1,height=10,width=30)
    List1.winfo_exists()
    List1.grid(row=7, column=1)

    main1.mainloop()

def getData():
    curVehicle.execute('SELECT * FROM Vehicle') 
    Result=curVehicle.fetchall()
    #print(Result)
    j=0
    for i in Result:
            List1.insert(j,i)
            j+=1                        

CreateWindow()
CreateUI()
getData()
BCDB.close()

然而GetData函数正确地将所有记录插入List1。 为什么会产生这种异常?

1 个答案:

答案 0 :(得分:1)

在主窗口被销毁之前,

getData()才被调用。它尝试在列表框中插入一些内容,但列表框不再存在。

在错误消息中,.63347536是列表框小部件的内部名称。在内部有一个具有相同名称的命令,因此出现错误。