使用单选按钮时出现Tkinter IntVar属性错误



我正在使用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()

最新更新