Дерево рендеринга с пакетом ete3 портит меню в tkinter

Я разрабатываю настольное приложение, используя tkinter для GUI. Приложение генерирует несколько вложенных структур данных, которые я хочу визуализировать графически в виде деревьев. Для этого я использую пакет ete3. Однако, когда я рендерил деревья в файл изображения, меню в корневом окне tkinter испортилось. Дерево корректно отображается на изображении.

Вот упрощенная версия кода, которая имеет ту же проблему:

from tkinter import *
from tkinter import ttk, filedialog
from ete3 import Tree

root = Tk()
root.geometry("300x300")

menubar = Menu(root)
root['menu'] = menubar
file = Menu(menubar, tearoff=0)
menubar.add_cascade(menu=file, label='File')
file.add_command(label="Open")

def plot():
    direction = filedialog.asksaveasfilename(defaultextension=".jpg", filetypes=(("jpg file", "*.jpg"),))
    tree = Tree("((a,b),c);")
    tree.render(direction)

ttk.Button(root, text="Plot tree to file", command=plot).grid()

root.mainloop()

Приложение перед рендерингом дерева выглядит так: image1

И после рендеринга дерева: image2

Кроме того, если я удаляю tree.render(direction) линия, проблема не возникает. Есть идеи, что может быть причиной этого?

0 ответов

Другие вопросы по тегам