Tcl/Tk树视图

Tcl/Tk树视图,tcl,tk,Tcl,Tk,我正在尝试使用以下代码运行一个简单的Tcl/Tk gui应用程序: package require Tk ttk::treeview .tree -columns "Creator Year" -displaycolumns "Year Creator" .tree heading Creator -text "Creator" -anchor center .tree heading Year -text "Year&qu

我正在尝试使用以下代码运行一个简单的Tcl/Tk gui应用程序:

package require Tk
ttk::treeview .tree -columns "Creator Year" -displaycolumns "Year Creator" 
.tree heading Creator -text "Creator" -anchor center
.tree heading Year -text "Year" -anchor center
pack .tree
我正在通过我的Tcsh控制台运行它,它工作得很好。但是,当我关闭应用程序创建的GUI窗口并再次运行代码时,出现以下错误:

这不是Tk applicationNULL主窗口

无效的命令名“.tree”

无效的命令名“.tree”

无法调用“pack”命令:应用程序已被销毁

所以我的问题是,当我再次运行代码时,为什么会失败

如果我再次启动tclsh,我会得到同样的结果。在关闭应用程序创建的GUI窗口后第一次工作,但不是第二次

谢谢,试试这个

package require Tk
toplevel .t
ttk::treeview .t.tree -columns "Creator Year" -displaycolumns "Year Creator"
.t.tree heading Creator -text "Creator" -anchor center
.t.tree heading Year -text "Year" -anchor center
pack .t.tree
唯一的区别是您创建了一个顶级小部件(外观和行为类似于应用程序窗口,但您可以有几个)。使树小部件成为顶级的子级,而不是
.t.tree
而不是
.tree
。现在,您可以通过运行相同的代码来关闭toplevel并再次打开它

您不能关闭应用程序窗口,然后在同一进程中运行Tk代码:这是窗口系统的一个限制

文件: