Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型错误:';浮动';对象没有属性'__getitem';。(Python)_Python_Tkinter - Fatal编程技术网

类型错误:';浮动';对象没有属性'__getitem';。(Python)

类型错误:';浮动';对象没有属性'__getitem';。(Python),python,tkinter,Python,Tkinter,画布宽度和高度设置为变量最大值的10倍。 IsGraphHidden=0 import Tkinter import tkMessageBox from Tkinter import * CanvasHeight = 500 CanvasWidth = 600 这是所有滑块的窗口,定义为“主窗口”,供以后使用 MainWindow = Tkinter.Tk() 由于Tkinter插件,所有变量都设置为DoubleVar。 它需要自己的特殊浮点、整数和字符串才能工作。 可以使用VARIABL

画布宽度和高度设置为变量最大值的10倍。 IsGraphHidden=0

import Tkinter
import tkMessageBox
from Tkinter import *

CanvasHeight = 500
CanvasWidth = 600
这是所有滑块的窗口,定义为“主窗口”,供以后使用

MainWindow = Tkinter.Tk()
由于Tkinter插件,所有变量都设置为DoubleVar。 它需要自己的特殊浮点、整数和字符串才能工作。 可以使用VARIABLE.get()将它们作为普通变量进行访问

这是我们将用来继续这条线,而不是仅仅从屏幕的一角画一堆线

coords = []
lastcoords = [0,0] 
这些是按钮的过程,以及其余的代码

Plot = DoubleVar()

StrengthScale = Scale( MainWindow, variable = Strength, orient = HORIZONTAL,label="Strength")

MultipleScale = Scale( MainWindow, variable = Multiple, from_ = float(0), to = float(1), resolution = float(0.01), orient = HORIZONTAL, label="Multiple")

TimeScale = Scale( MainWindow, variable = Time, orient = HORIZONTAL, from_ = int(0), to = int(120), label="Time")

我需要一些关于float object getitem错误的帮助,我在曼彻斯特大学做这段代码是为了获得工作经验…

您用浮点值替换了
lastcoords
列表:

def Calculate():
  answer = float(Strength.get())*float(Multiple.get())
  tkMessageBox.showinfo("Answer:", answer)

def PrepPlot():
 global IsGraphHidden
 global coords
 global lastcoords
 lastcoords0 = lastcoords[0]
 lastcoords1 = lastcoords[1]
 coords.append(lastcoords0)
 coords.append(lastcoords1)
 coords.append(Time.get()*5)
 coords.append(Strength.get()*Multiple.get()*5)
 lastcoords = Time.get()*5
 lastcoords = Strength.get()*Multiple.get()*5

if IsGraphHidden == 0:
 Graph = Canvas(MainWindow, width = CanvasWidth, height = CanvasHeight, bg = "white")
 Graph.create_line(coords, fill = "black")
 Graph.grid(row=5, column=1)
else:
 Graph.destroy()
 Graph.delete("all")
 Graph.create_line(coords, fill = "black")
 Graph.grid(row=5,column=1)
 IsGraphHidden = 1

def DisplayPoints():
 PointWindow = Tkinter.Tk()
 Text = Label(PointWindow, textvariable = "Hi there", relief=RAISED)
 Text.pack()
 PointWindow.mainloop() #Work in progress, nothin' to see here.

Button = Tkinter.Button(MainWindow, text= "Calculate",command = Calculate)
PrepButton = Tkinter.Button(MainWindow, text = "Plot", command = PrepPlot) #The text is the text on the button.
DisplayButton = Tkinter.Button(MainWindow, text = "Display Plots", command = DisplayPoints)

MultipleScale.grid(row=0,column=0)
StrengthScale.grid(row=1,column=0)
TimeScale.grid(row=1,column=2)
PrepButton.grid(row=2,column=1)
Button.grid(row=4,column=1)
DisplayButton.grid(row=3,column=1)

MainWindow.mainloop()
所以下一次绕线时:

lastcoords = Time.get()*5
lastcoords = Strength.get()*Multiple.get()*5
引发异常,因为无法对浮点值使用订阅

我想你应该换一个新的清单:

lastcoords0 = lastcoords[0]

那么错误在哪里产生呢?请包含异常的完整回溯。请注意,您不需要对文本值使用
int()
float()
0
已经是整数,
0.01
已经是浮点对象
int()
float()
用于转换,Python不需要类型声明。谢谢,我会提高评分,但我没有代表:D
lastcoords0 = lastcoords[0]
lastcoords = [Time.get() * 5, Strength.get() * Multiple.get() * 5]