Tkinter Canvas

时间:2016-09-02 11:32:47

标签: python canvas tkinter

我正在做一些简单的任务,为我准备参加大学的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。

1 个答案:

答案 0 :(得分:0)

我认为第二个'第一个'应该是第二个'。还有另外两个问题。

你没有说过 你是怎么运行的。确切的细节可能很重要。

您没有创建并向Canvas传递tkinter.Tk的实例。相反,您依赖于默认的根机制。我认为这是不可靠的,也是一个坏主意。除此之外,你不能在隐藏的根目录上调用方法。

我将您的代码加载到IDLE编辑器中,更改了第2行和第2行。 3到

root = tkinter.Tk()
canvas = tkinter.Canvas(root, width=300, height=300)

点击F5,就跑了。我再次击中F5然后跑了。又一次又一次。

要从命令行运行或双击该文件,您可能需要在最后添加此行。

root.mainloop()