使用ete3包渲染树会破坏tkinter中的菜单

时间:2018-02-13 02:33:31

标签: python python-3.x tkinter ete3

我正在使用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 个答案:

没有答案