-1
我的代码的目标是让滑块在编号改变时插入文本到文本框中。但是,我似乎无法找到导致“AttributeError:Label实例没有属性”插入“”错误的原因。AttributeError:标签实例没有属性“插入”
# -*- coding: utf-8 -*-
import Tkinter
from Tkinter import *
root = Tkinter.Tk() #The root/base
def math(): #This is the command that does the math
text.insert(Tkinter.END, base +height + radius)
text.see(Tkinter.END)
text = Text(root, width=10, height=20, background='#FFFFFF')
text.grid(row=0, rowspan=2, column=2)
text = Tkinter.Label(root, text='Change slider\nTo Desired\nValue')
text.grid(row=0, column=1)
####
#Variables
####
base = Tkinter.IntVar()
base.set(0)
height = Tkinter.IntVar()
height.set(0)
radius = Tkinter.IntVar()
radius.set(0)
####
#Sliders
####
base_slider = Tkinter.Scale(root, from_=0, to=500, variable=base,
orient=Tkinter.HORIZONTAL,
label='Base', command=math)
base_slider.grid(row=1, column=1)
height_slider = Tkinter.Scale(root, from_=0, to=500, variable=height,
orient=Tkinter.HORIZONTAL,
label='Height', command=math)
height_slider.grid(row=2, column=1)
radius_slider = Tkinter.Scale(root, from_=0, to=500, variable=radius,
orient=Tkinter.HORIZONTAL,
label='Radius', command=math)
radius_slider.grid(row=3, column=1)
root.mainloop()
谢谢你的帮助。
您有两个相同的命名变量。第二个会覆盖第一个,它会丢失。您需要给其中一个不同的名称,并修改您的代码以在适用的情况下使用该名称。另外''text.insert(Tkinter.END,base + height + radius)'=>'text.insert(Tkinter.END,base.get()+ height.get()+ radius.get())' –
Thanks Paul ,但现在我已经解决了上述问题,我得到了错误“TypeError:math()不需要参数(给出1)” – Henry
给'math'一个参数。称它为你喜欢的,你没有使用它。 Tkinter用一个参数调用它,所以它需要有一个参数,即使你忽略它。同时将'数学下移到'text'的实例化之下。 –