我试图完成我的程序,但它出现了这个错误...程序会问你有几个边和边的长度,然后画一个形状...
- import tkinter
- import turtle
- window = tkinter.Tk()
-
- def callback():
- pen1 = turtle.Pen()
- for i in range(ent):
- pen1.forward(ent1)
- pen1.right(360/ent)
-
-
- lbl = tkinter.Label(window, text="How Many Sides :")
- lbl.pack()
-
- ent = tkinter.Entry(window)
- ent.pack()
-
- lbl1 = tkinter.Label(window, text="Length Of Sides :")
- lbl1.pack()
- ent1 = tkinter.Entry(window)
- ent1.pack()
-
-
- btn = tkinter.Button(window, text="Draw", command = callback)
- btn.pack()
- window.title("Shape Creator")
- window.geometry("300x300")
- window.mainloop()
# 回答1
Tkinter变量不是Python变量,因此必须使用get()进行转换。默认情况下,这些值必须转换为整数,因为它们是字符串。将CALLBACK()函数更改为以下内容以查看其工作原理。
- def callback():
- value=ent.get()
- print("sides =", value, type(value))
- value=ent1.get()
- print("length =", value, type(value))
-
# 回答2
仍然出现一个错误(对不起,我是python的新手)TypeError:无法将Sequence乘以'Float'类型的非整型
代码:
- import tkinter
- import turtle
- window = tkinter.Tk()
-
- def callback():
- value=ent.get()
-
- print("sides =", value, type(int))
- value1=ent1.get()
- print("length =", value1, type(int))
-
- pen1 = turtle.Pen()
- pen1.forward(value1)
- pen1.right(360/value)
-
-
- lbl = tkinter.Label(window, text="How Many Sides :")
- lbl.pack()
-
- ent = tkinter.Entry(window)
- ent.pack()
-
- lbl1 = tkinter.Label(window, text="Length Of Sides :")
- lbl1.pack()
- ent1 = tkinter.Entry(window)
- ent1.pack()
-
-
- btn = tkinter.Button(window, text="Draw", command = callback)
- btn.pack()
- window.title("Shape Creator")
- window.geometry("300x300")
- window.mainloop()
# 回答3
您必须发布完整的错误消息以显示错误发生的位置才能获得帮助。看见
此处将字符串转换为整数
有关如何转换的一般信息,请参阅。