import Tkinter
import tkMessageBox
from Tkinter import *
CanvasHeight = 500
CanvasWidth = 600
Ширина и высота холста установлены в 10x максимальных значений переменных. IsGraphHidden = 0TypeError: объект 'float' не имеет атрибута '__getitem__'. (Python)
MainWindow = Tkinter.Tk()
Это окно для всех ползунков, и определяется как «MainWindow» для последующего использования.
Strength = DoubleVar()
Multiple = DoubleVar()
Time = DoubleVar()
Все переменные, установленные в DoubleVar, из-за плагина Tkinter. Для этого нужны собственные специальные поплавки, целые числа и строки. Они могут быть доступны как обычные переменные с помощью 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")
Это процедуры для кнопок, а также для остальной части кода.
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()
мне нужна помощь с ошибкой объекта поплавка GetItem, я делаю этот код для опыта работы в Манчестерском университете ...
So **, где ** возникает ошибка? Пожалуйста, включите полную отслеживание для исключения. –
Обратите внимание, что вам не нужно использовать 'int()' и 'float()' для буквенных значений. '0' is * уже * целое число,' 0.01' уже является объектом с плавающей точкой. 'int()' и 'float()' предназначены для преобразований, Python не требует деклараций типов. –