使用tkinter.get()函数调用键的值时出现问题

使用tkinter.get()函数调用键的值时出现问题,tkinter,Tkinter,Tkinter回调100回溯中出现异常(最近一次调用上次): 文件“D:\anaconda\lib\tkinter\uuuu init\uuuuu.py”,第1702行,在调用中 返回self.func(*args)文件“C:/Users/hp/PycharmProject/Financial Project/JournalEntries.py”,第行 29日,在《华尔街日报》上 self.AccountCode=AccCode[Account\u Title.get()]键错误:“100” 这

Tkinter回调100回溯中出现异常(最近一次调用上次):
文件“D:\anaconda\lib\tkinter\uuuu init\uuuuu.py”,第1702行,在调用中 返回self.func(*args)文件“C:/Users/hp/PycharmProject/Financial Project/JournalEntries.py”,第行 29日,在《华尔街日报》上 self.AccountCode=AccCode[Account\u Title.get()]键错误:“100”

这是我的字典:

 AccCode = {100 : 'Cash',101 : 'Equipments', 102 : 'Supplies' , 103 : 'AccRec' , 104 : 'PreInsurance',
                   200 : 'AccPayable', 201 : 'NotesPay', 202 : 'InterestPayable', 203 : 'AccDepreciation' , 204 : 'Salaries and wages payable',
                   300 : 'Owner Capital', 301 : 'Owner Drawing',
                   400 : 'Service Revenue' , 401 : 'Rent Revenue',
                   500 : 'Salaries and wages Expense' , 501 : 'Utilities Expense' , 502 : 'Rent Expense' , 503 : "Insurance Expense" , 504 : 'Depreciation Expense' , 505 : 'Supplies expense' , 506 : ' Interest Expense' }
尽管如此,当我调用print(Account\u Title.get())时,当我在tkinter条目中输入100时,它给了我100。 但是当self.AccountCode=AccCode[Account\u Title.get()]时
它给出了键错误

当您为ex.
100
输入
键时,您希望在tkinter窗口中看到
现金

使用
Entry
小部件中的
textvariable
选项,您可以调用
textvariable
上的
get()
来获取您在输入字段中输入的

由于字典中的所有键都是整数,因此我使用
IntVar()
只接受
条目中的整数值。要从条目小部件接受字符串值,可以使用
StringVar()

使用
sqlite3
,如果字典中存在
,它会将
acc_代码
acc_值
插入
acc_信息
数据库

代码:

AccCode={100:'现金',101:'设备',102:'供应品',103:'增值',104:'预保险',200:'应付账款',201:'票据',202:'应付利息',203:'折旧',204:'应付工资',300:'所有者资本',301:'所有者提取',400:'服务收入',401:'租金收入',500:'工资和工资费用',501:“公用事业费用”,502:“租金费用”,503:“保险费用”,504:“折旧费用”,505:“用品费用”,506:“利息费用”}
window=tk.tk()
key=tk.IntVar()
key\u entry=tk.entry(窗口,宽度=20,文本变量=key)
键输入.grid(行=0,列=0,padx=10,pady=4)
值\标签=tk.标签(窗口,宽度=20)
值_label.grid(行=1,列=0,padx=10,pady=4)
#创建数据库和表
con=sqlite3.connect('acc_info.db'))
cursor=con.cursor()
create_table_query=“如果不存在acc_表,则创建表(acc_代码数字,acc_值文本)”
cursor.execute(创建表查询)
con.commit()
con.close()
def get_值():
#获取在输入字段中输入的值
已输入\u key=key.get()
#如果字典中存在输入的密钥
如果在AccCode.keys()中输入\u键:
con=sqlite3.connect('acc_info.db'))
cursor=con.cursor()
insert_query=“插入acc_表(acc_代码,acc_值)值(?,)”
输入的\u数据=(AccCode[输入的\u键],输入的\u键)
cursor.execute(插入查询,输入数据)
con.commit()
con.close()
value\u label.config(text=AccCode[输入的\u键]+'-插入的值')
其他:
#如果密钥不存在,则打印消息
value\u label.config(text=“键不存在”)
btn=tk.按钮(窗口,text='Insert value to db',command=get_value)
btn.网格(行=2,列=0,padx=20,pady=4)
window.mainloop()
图形用户界面:

输入
并按
将值插入数据库

如果输入了不存在的
,则显示验证消息


也许你应该试着调试程序。请注意100'100'。非常感谢,但我在sqlite3表中插入了key的值,就像我刚刚按下insert按钮一样,我的所有数据都将插入到表中。我希望用户输入key,即帐户代码,在后端,acc代码的值将被插入我编辑了表列account titleHey的代码,该代码现在支持插入到db以及验证消息。