簡體   English   中英

帶有 matplotlib 的 Tkinter - 為什么不繪制框架?

[英]Tkinter with matplotlib - Why is frame not drawing?

我正在嘗試使用嵌入在 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 時更輕松地添加更多元素。

看起來你忘記布置框架了。 將此添加到最后:

pie_frame.pack()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM