【问题标题】:Tkinter with matplotlib - Why is frame not drawing?Tkinter with matplotlib - 为什么框架不绘制?
【发布时间】:2020-11-19 22:20:51
【问题描述】:

我正在尝试使用嵌入在 tkinter 中的 matplotlib 显示饼图。这是类声明:

class Graph:
    def __init__(self, data, directory, scan_date, frame):
        self.data = data
        self.directory = directory
        self.scan_date = scan_date
        self.frame = frame

    def pie_chart(self):
        # try:
        #     self.canvas.get_tk_widget().pack_forget()
        # except AttributeError:
        #     pass

        piechart = graphs.make_pie_chart(self.data, self.directory, self.scan_date)
        self.canvas = FigureCanvasTkAgg(piechart, master=self.frame)
        self.canvas.draw()
        self.canvas.get_tk_widget().pack()

这里是实例化的地方:

def scan_and_display(directory):
    # runs the main scan function
    data, scanDate = main(directory)

    pie_frame = Frame(root, height=700, width=700)
    graph1 = Graph(data, directory, scanDate, pie_frame)
    graph1.pie_chart()

self.canvas = FigureCanvasTkAgg(piechart, master=self.frame) 行中,如果我将master 更改为root,它可以工作。但我想将它嵌入到它的框架中,以便在继续构建 GUI 时更轻松地添加更多元素。

【问题讨论】:

    标签: python matplotlib tkinter


    【解决方案1】:

    您好像忘记布置框架了。将其添加到末尾:

    pie_frame.pack()
    

    【讨论】:

    • 哇,我觉得自己像个白痴。我想我以为包装画布是最后一步,忘了我实际上也必须包装框架。谢谢!
    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 2013-01-11
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多