【问题标题】:Getting list of windows in Tk and destroying specific ones (R)获取 Tk 中的窗口列表并销毁特定的窗口 (R)
【发布时间】:2018-07-17 12:19:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: r tcl tk tcltk


    【解决方案1】:

    看着the R sources,我知道你应该这样做:

    tkwinfo("children", .TkRoot)
    

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


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

    【讨论】:

    • 谢谢!作为一个附带问题,他们没有将它包含在文档中是否有原因(或者我只是没有看到它)?仅仅是因为,正如他们在文档上方的 cmets 中所说的“它很少使用”吗?
    • 啊,我确实找到了,但由于某种原因它变灰了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2011-01-18
    • 1970-01-01
    • 2023-03-24
    • 2021-09-24
    相关资源
    最近更新 更多