0

我想知道是否有可能在 Tk 中获得一个窗口列表,并销毁特定的窗口。我正在使用 tcltk 接口在 R 中工作,并且正在调用很久以前由其他人编写的函数(我无法编辑),它正在生成我不想要的其他窗口。

这里Toplevel的文档来看,新窗口似乎是.TkRoot默认的子窗口。我知道 Python 有一个winfo_children方法,我想尝试调用它,.TkRoot但我认为该方法没有在 tcltk 库中实现。我尝试使用tcl("winfo", "children", .TkRoot),但出现错误:([tcl] bad window path name "{}"我不熟悉实际的 tcl,所以我可能搞砸了这个命令)。

此外,如果有一种方法可以调用winfo children,那么处理结果以识别特定窗口然后销毁它们的最佳方法是什么?

4

1 回答 1

0

查看R 来源,我发现您应该这样做:

tkwinfo("children", .TkRoot)

除了我认为这也行不通,因为.TkRoot在 Tk 方面没有相应的小部件。相反,使用由单个句点 ( .) 组成的字符串作为搜索的根;这是 Tcl 方面的初始窗口的名称。而且我怀疑你只会得到一个原始的 Tcl 基本 Tk 小部件名称列表而没有 R 包装,因为我只是看不到该转换应用在哪里......</p>


请注意,结果可能包含您不期望的小部件,并且如果您想查找所有内容,则需要在每个窗口上递归调用它。

于 2018-07-17T04:19:47.497 回答