如何将几何体放入Tkinter的Toplevel?

时间:2013-09-20 17:53:01

标签: python graph tkinter geometry

我正试图在Tkinter的Toplevel中制作一个图表。我认为问题在于你不能在Tkinter中打包Toplevels,你需要在放置几何体之前打包画布(例如:线条,矩形等)。这是我正在尝试编写的代码中的snipet(城市名称是我班级中的实例变量):

def graph(self):
    print self.cityName
    top = Toplevel(master, width = 300, height = 300)
    top.title(self.cityName + "'s Population")
    top.create_line(10, 300-10, 10, 300)
    top.create_line(10, 300-10, 300-10, 10)

尝试在第5行代码中创建行时会引发错误。有没有办法在python的Tkinter中的Toplevel上创建行?

这是错误:

  

AttributeError:Toplevel实例没有属性'create_line'

1 个答案:

答案 0 :(得分:1)

Toplevel没有create_line方法,但tk.Canvas可以。因此,在Canvas中打包Toplevel,然后在Canvas上绘图:

import Tkinter as tk
root = tk.Tk()
top = tk.Toplevel(root, width = 300, height = 300)
canvas = tk.Canvas(top, bg='white')
canvas.pack(expand=tk.YES, fill=tk.BOTH)

top.title("Population")
canvas.create_line(10, 300-10, 10, 300)
canvas.create_line(10, 300-10, 300-10, 10)
root.mainloop()