【问题标题】:Place method for FigureCanvasTkAgg in tkinter window?在 tkinter 窗口中放置 FigureCanvasTkAgg 的方法?
【发布时间】:2020-03-31 00:00:59
【问题描述】:

我是 tkinter 的新手,我想在我的 tkinter 窗口的特定位置的 TkAgg 画布中放置一个图表。 我已经使用place() 方法设置了我的所有小部件,这对我的事业最有效。我现在有一个很大的空白空间,带有图形的画布应该放在哪里。有没有办法使用可用的方法 grid()pack() 将画布放到那个确切的位置,或者有什么接近于 FigureCanvasTkAgg 的 place() 方法的方法?

我的代码片段

f = Figure(figsize=(5, 4), dpi=100)
a = f.add_subplot(111)
graph = nx.Graph()
...

canvas = FigureCanvasTkAgg(f, master=root)
canvas.draw()
canvas.get_tk_widget().pack()

toolbar = NavigationToolbar2Tk(canvas, root)
toolbar.configure(bg="white")
toolbar.update()
canvas._tkcanvas.pack()
...

我希望工作的是

canvas.get_tk_widget().place(x=390, y=190, anchor='w')

但它会忽略place(),只是将其打包在窗口的左上角。

有什么建议吗?

【问题讨论】:

    标签: python-3.x canvas tkinter geometry


    【解决方案1】:

    您可以添加一个新框架并根据需要放置它。

    然后使用pack() 将画布添加到该框架。

    frm = tk.Frame(root)
    frm.place(...)
    
    canvas = FigureCanvasTkAgg(f, master=frm)
    canvas.draw()
    canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
    

    【讨论】:

    • 谢谢。它完美地工作。你让我度过了孤立无援的一天。
    • 很高兴我能帮上忙 :)
    猜你喜欢
    • 2012-06-24
    • 2021-08-20
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多