我正在使用tkinter制作一个简单的计算器,这个错误消息不断出现。
属性错误:类型对象"Tk"没有属性"IntVar"追溯:
文件"c:/Datadesk/my programs/Calculator.py";,第9行,inv=Tk.IntVar((AttributeError:类型对象"Tk"没有属性"IntVar">
这是我的代码:
import tkinter as tk
from tkinter import *
import time
root = Tk()
tk = Tk()
v = Tk.IntVar()
v.set(1) # initializing the choice
root.title('Calculator')
root.geometry('600x400+50+50')
def calucator():
value1 = tk.StringVar(root, Value= 'Number:' )
value1 = tk.Entry(root, textvariable=value1).pack()
time.sleep(1)
value2 = tk.StringVar(root, Value= 'Number:' )
value2 = tk.Entry(root, textvariable=value2).pack()
time.sleep(1)
operations = [("Addition", 101),
("Subtraction", 102),
("Divison", 103),
("Mulitplication", 104)]
def ShowChoice():
print(v.get())
tk.Label(root,
text="""Choose your Operation""",
justify = tk.LEFT,
padx = 20).pack()
for operations, val in operations:
tk.Radiobutton(root,
text=operations,
padx = 20,
variable=v,
command=ShowChoice,
value=val).pack(anchor=tk.W)
if val==101:
print('value1 + value2')
elif val==102:
print('value1 - value2')
elif val==103:
print('value1 * value2')
elif val==104:
print('value1 / value2')
else:
close
我到处找了,还没有找到解决办法。我知道堆栈溢出上还有其他线程也有类似的问题,但我尝试过的所有解决方案都没有奏效。
任何帮助都会很棒!mrt
您导入了一个模块,并将其命名为tk
。然后创建一个新对象,并将其命名为tk
。你只能有一个名字。
解决方案是为Tk
实例选择一个不同的名称,或者为导入选择不同的名称。
您需要删除tk=Tk()
。此外,v = Tk.IntVar()
需要是v = tk.IntVar()
。