我想首先说我知道其他人已经遇到过这个问题,但我已经查看了对他们的回复,而且他们中没有一个相似,足以帮助我解决问题。
我正在尝试跟踪一个Entry框,如果Entry是正确的大小,请浏览SQL数据库并找到相应的值。
https://i.stack.imgur.com/egSX6.png是GUI,如果填写了条件,则$的字段应该更新。
我添加了此代码以检查条目:
def update_winner():
cursor = conn.cursor()
winner = winner_id.get()
school = school_name.get()
temp = school+winner
if len(temp) == 5:
cursor.execute("SELECT Rating FROM KIDS WHERE LocalID = ?", temp)
rating=cursor.fetchval()
cursor.execute("SELECT FirstName FROM KIDS WHERE LocalID = ?", temp)
name=cursor.fetchval()
winner_name.set(name)
winner_id.trace("w",update_winner)
ratings.mainloop()
当我运行它时,我立即将任何内容放入提供给winner_id的条目中我得到以下错误:TypeError:update_winner()接受0个位置参数但是给出了3个。
update_winner()的参数来自哪里?它在跟踪方法中被调用,我认为我没有传递任何东西。
答案 0 :(得分:1)
修改StringVar
内容后,将使用3个参数调用update_winner
函数(有关详细信息,请参阅What are the arguments to Tkinter variable trace method callbacks?)。由于您的函数不带任何参数,因此它会给您错误TypeError: update_winner() takes 0 positional arguments but 3 were given
。
要更正它,只需更改def update_winner():
中的def update_winner(*args):
。