我是一个11年级的学生(5年级学生),刚刚开始学习Python编程。我试图做一个图形用户界面,在那里我可以选择我想用海龟画什么形状,并输入绘制形状所需的值。我用下面的代码成功地做到了这一点(我已经完成了turtle分形的功能并导入了该文件):
from tkinter import *
import turtlegraphics
from turtle import *
import math
#set up the window
root = Tk()
root.title('Turtle shapes')
root.geometry('300x200+100+100')
#make the interface
turtleLabel = Label(root, text = 'Turtle Fractals Generator')
turtleLabel.grid(row = 0, column =1, columnspan =2)
#order widgets
orderLabel = Label(root, text ='Order')
orderLabel.grid(row = 1, column =0)
orderStr = StringVar()
orderEntry = Entry(root, textvariable = orderStr)
orderEntry.grid(row = 1, column = 1, columnspan = 2)
#length widgets
lengthLabel = Label(root, text ='Length')
lengthLabel.grid(row = 2, column =0)
lengthStr = StringVar()
lengthEntry = Entry(root, textvariable = lengthStr)
lengthEntry.grid(row = 2, column = 1, columnspan = 2)
#button widgets
def clearF():
#Clear the entries
orderStr.set('')
lengthStr.set('')
return
#end def
clearButton = Button(root, text ='Clear', command = clearF)
clearButton.grid(row = 3, column =1)
def treeF():
order = int(orderStr.get())
length = float(lengthStr.get())
turtlegraphics.tree(order,length, pen)
return
#end def
treeButton = Button(root, text ='Tree', command = treeF)
treeButton.grid(row = 1, column =3)
#make a gasket button
def gasketF():
order = int(orderStr.get())
length = float(lengthStr.get())
turtlegraphics.gasket(order,length,pen)
return
#end def
gasButton = Button(root, text ='Gasket', command = gasketF)
gasButton.grid(row = 2, column =3)
#make a dandelion button
def dandelionF():
order = int(orderStr.get())
length = float(lengthStr.get())
turtlegraphics.tree4(order,length,pen)
return
#end def
danButton = Button(root, text ='Dandelion', command = dandelionF)
danButton.grid(row = 3, column =3)
#make flalke button
def kevinF():
order = int(orderStr.get())
length = float(lengthStr.get())
turtlegraphics.k(order,length,pen)
return
#end def
def flakeF():
order = int(orderStr.get())
length = float(lengthStr.get())
turtlegraphics.flake(order,length,pen)
return
#end def
flakeButton = Button(root, text ='Flake', command = flakeF)
flakeButton.grid(row = 4, column =3)
#make a screen and a pen
pen = Pen()
screen = Screen()
pen.speed(0)
pen.color('blue')
pen.width(3)
screen.bgcolor('white')
root.mainloop()
不过,我想试着把一个列表从中选择形状,而不是有几个按钮。我不太了解列表,因为我还没有被教过,但经过研究,我得到了:
^{pr2}$我知道我的代码有问题,但我不知道我做错了什么。当我运行我的代码时,我没有任何错误,但它不会绘制形状。此外,“清除”按钮在单击时不起作用。我怎么才能修好这个?在
您当前的问题是
selection()
是如何工作的—它将数字与字符串进行比较,并拥有执行任何子程序所需的代码。我在下面修改了它,以获得你想要的行为。我还做了其他的改变和简化:关于代码的一般注释:
找到并遵循一个好的Python编码风格当你发明自己的编码“风格”时,理解你的代码会变得更加困难。在
这不是将turtle与tkinter集成的正确方法。当你在cd6}或者cd4}的文档中使用溢出的cd4{Tk},而不是使用cd4}。在
相关问题 更多 >
编程相关推荐