如何解决从 Button (Tkinter) 读取文本
BuchstabenOptionen = Toplevel()
BuchstabenOptionen.attributes('-fullscreen',True)
BuchstabenOptionen.title("Buchstabenoptionen")
def BuchstabenAuswertung():
hallo = Button_Buchstaben['text']
listeBuchstaben = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
row_Buchstaben = 0
column_Buchstaben = 0
for x in listeBuchstaben:
global text
print(x)
row_Buchstaben = row_Buchstaben + 1
if row_Buchstaben == 5:
column_Buchstaben = column_Buchstaben +1
row_Buchstaben = 1
Button_Buchstaben = Button(BuchstabenOptionen,text = x,font = BuchstabenFont,command = BuchstabenAuswertung).grid(row = row_Buchstaben,column = column_Buchstaben,padx = "5",pady = "5")
代码返回 halo = Button_Buchstaben['text'] TypeError: 'NoneType' 对象不可下标
我做错了什么?
解决方法
所有几何管理器:pack
、place
或 grid
返回 None
。这就是它抛出错误的原因。所以你应该做这样的事情
Button_Buchstaben = Button(BuchstabenOptionen,text = x,font = BuchstabenFont,command = BuchstabenAuswertung)
Button_Buchstaben.grid(row = row_Buchstaben,column = column_Buchstaben,padx = "5",pady = "5")
此外,您的 Button_Buchstaben
会不断更新为新值。所以当你点击它时,只会打印最后一个值。将您的功能更新为此
def BuchstabenAuswertung(text):
print(text)
我们将为每次迭代创建一个局部变量并将其作为函数的参数传递。
Button_Buchstaben = Button(BuchstabenOptionen,command = lambda i=x:BuchstabenAuswertung(i))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。