1

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

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 的顶层创建行?

这是错误:

AttributeError:顶级实例没有属性“create_line”

4

1 回答 1

1

Toplevels 没有create_line方法,尽管tk.Canvass 有。因此,将 a 打包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()
于 2013-09-20T18:04:59.473 回答