我正在做一些简单的任务,为我准备参加大学的python做准备,但我遇到了一个问题。 当我第一次运行我的代码时,出现了tkinter窗口并且绘制了图像,但是当我第二次运行它时,tkinter窗口没有出现:( 这是代码:
import math, tkinter
canvas = tkinter.Canvas(width=300, height=300)
canvas.pack()
n = int(input('enter n: '))
x0, y0, r = 150, 150, 100
xx, yy = x0+r, y0
uhol = 360/n
for i in range(n):
rad = uhol/180*math.pi
x = x0 + r * math.cos(rad)
y = y0 + r * math.sin(rad)
canvas.create_line(x, y, xx, yy)
xx, yy = x, y
uhol += 360/n
在此之前的几个小时,我编写了这段代码,并且每次运行它都会正常工作:
import math, tkinter
canvas = tkinter.Canvas(width=300, height=300)
canvas.pack()
x0, y0, r = 150, 150, 100
xx, yy = x0+r, y0
for uhol in range(10, 361, 10):
rad = uhol/180*math.pi
x = x0 + r * math.cos(rad)
y = y0 + r * math.sin(rad)
canvas.create_line(x, y, xx, yy)
xx, yy = x, y
我使用的是Python 3.5.2。
答案 0 :(得分:0)
我认为第二个'第一个'应该是第二个'。还有另外两个问题。
你没有说过 你是怎么运行的。确切的细节可能很重要。
您没有创建并向Canvas传递tkinter.Tk的实例。相反,您依赖于默认的根机制。我认为这是不可靠的,也是一个坏主意。除此之外,你不能在隐藏的根目录上调用方法。
我将您的代码加载到IDLE编辑器中,更改了第2行和第2行。 3到
root = tkinter.Tk()
canvas = tkinter.Canvas(root, width=300, height=300)
点击F5,就跑了。我再次击中F5然后跑了。又一次又一次。
要从命令行运行或双击该文件,您可能需要在最后添加此行。
root.mainloop()