我可以查看我的顶层窗口是否已最大化,是否可以通过编程方式最大化它?我在Windows XP上使用R的tcltk软件包8.5。
问题的原因是:我想通过先调用撤销然后取消图标来强制执行<Visibility>
事件。但是,如果在这两个函数调用之前窗口最大化,则不会在这些调用之后。是否有更简单的方法来强制执行此事件?
答案 0 :(得分:1)
编写了一个将Visibility事件传播到给定窗口小部件及其所有子窗口的函数。
tkevent.propagate <- function(w,e) {
tkevent.generate(w, e)
children <- as.character(tkwinfo("children", w))
if(length(children)>0) lapply(children, function(c) tkevent.propagate(c,e))
}
这样,我不需要调用withdraw / deiconify并将我的事件发送到每个小部件。
答案 1 :(得分:1)
您可以使用wm state $toplevel
发现窗口是否已最大化(查找zoomed
作为返回值)。但...
操作系统不会在Windows上为您正确生成<Visibility>
个事件;你只能在被映射的窗口上得到它们,这是微妙的不同。 (Windows告诉你更少关于堆叠顺序及其后果比X更少; Tk非常接近X的模型。)你没有说出为什么你想要这个事件;或许有其他东西可以满足你的真正目的吗?