Поместить метод для FigureCanvasTkAgg в окне tkinter? - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в tkinter и хочу разместить график на холсте TkAgg в указанной позиции c в моем окне tkinter. Я настроил все мои виджеты, используя метод place(), который лучше всего подходит для моей цели. Теперь у меня осталось большое пустое пространство, где холст с графиком должен go. Есть ли какой-нибудь способ получить холст к этому точному месту с помощью доступных методов grid() и pack() или есть что-нибудь похожее на метод place() для FigureCanvasTkAgg?

Фрагмент моего кода

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()
...

я бы работал sh:

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

, но он игнорирует place() и просто упаковывает его в верхнем левом углу окна.

Любой предложения?

1 Ответ

1 голос
/ 31 марта 2020

Вы можете добавить новый кадр и разместить его так, как хотите.

Затем добавьте холст к этому кадру, используя 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...