gpt4 book ai didi

python - 高级计算器具有 Tkinter GUI 和变量错误

转载 作者:行者123 更新时间:2023-12-01 03:19:08 25 4
gpt4 key购买 nike

编辑:我修复了本文所涉及的错误等,现在我正在尝试一种不同的方法来实现我最初想要的高级功能。这次我有一个显示器,还有显示功能。这些按钮通过将文本插入到所述显示中来调用更新功能。我想知道如何使用这个函数,也许 textvariable = 这样我就可以将按钮的文本从 1, 2, 3, 4... 9, 0 更改为 A, B, C、D...I、J。我的代码如下,任何帮助将不胜感激。 :)

from tkinter import *
import time

root = Tk()
root.title('Calculator')



displayb = Entry(root)
displayb.grid(row = 1, columnspan = 6)


mode = 0

i = 0


'''def update():
global mode
if mode == 0:
mode = 1
else:
mode = 0
return'''
def display(e):
global i
displayb.insert(i,e)
i += 1

txt1 = StringVar()
a = '1' if mode == 0 else 'A'
one = Button(root, text = '1', command = lambda : display(1))
txt1.set(a)
one.grid(row = 2, column = 0)
two = Button(root, text = '2', command = lambda : display(2))
two.grid(row = 2, column = 1)
three = Button(root, text = '3', command = lambda : display(3))
three.grid(row = 2, column = 2)
four = Button(root, text = '4', command = lambda : display(4))
four.grid(row = 3, column = 0)
five = Button(root, text = '5', command = lambda : display(5))
five.grid(row = 3, column = 1)
six = Button(root, text = '6', command = lambda : display(6))
six.grid(row = 3, column = 2)
seven = Button(root, text = '7', command = lambda : display(7))
seven.grid(row = 4, column = 0)
eight = Button(root, text = '8', command = lambda : display(8))
eight.grid(row = 4, column = 1)
nine = Button(root, text = '9', command = lambda : display(9))
nine.grid(row = 4, column = 2)
zero = Button(root, text = '0', command = lambda : display(0))
zero.grid(row = 5, column = 1)
'''shift = Button(root, text = 'sft', command = lambda : mode = 1 if mode == 0 else 0)
shift.grid(row = 2, column = 1)'''


root.mainloop()

最佳答案

command 参数提供值时,您需要通过指定函数名称来为其提供对函数的引用。

shift = Button(root, text = 'sft', command = update())

这里的末尾有 () ,它正在调用您的函数。删除 () 或像之前一样使用 lambda

现在,您收到错误的原因是 mode 是一个 global 变量,在 update 函数之外定义。因此,如果您想更新变量,那么您需要让它知道 modeglobal

def update():
global mode
if mode == 0:
mode = 1
else:
mode = 0
return mode

另请注意,除非您在其他地方调用此函数,否则无法在按下按钮时检索返回值。

有关 global and local scope 的更多信息.

关于python - 高级计算器具有 Tkinter GUI 和变量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42128018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com