如何在tcl中保持窗口顶部

时间:2016-04-02 15:27:38

标签: tcl tk

我有一个TCL / TK gui,有一些中间窗口。当中间窗口启动时,我保持主窗口忙。

但是当启动其他应用程序时,有时中间窗口会进入后台,此时GUI似乎挂起了。所以目标是将窗口保持在前景/背景中以及主窗口。

我选择瞬态窗口选项。

wm transient .runner .restGUI

这在windows中工作正常,但在linux中,瞬态窗口不显示[x]关闭按钮。我必须右键单击标题栏才能关闭它。这使得GUI无效。

对此有任何建议。

同样经过测试,wm deiconify不适用于Linux中的常规窗口,但适用于瞬态窗口。

2 个答案:

答案 0 :(得分:2)

没有办法保证窗口会保持在最顶层;其他程序总是可以调解并阻止它。但是,您可以通过设置正确的attribute on the window来提供非常强大的提示

# Can use any boolean value here
wm attributes .runner -topmost yes

如果您在足够现代的平台上使用足够现代的Tk,那么这是一个跨平台属性(极少数属性之一)。你可能已经这样做了。

您还应该将窗口样式设置为瞬态等等。最顶层的属性是一个独立的轴。

有关更广泛的讨论(现在已经过时),请参阅the Tcler's Wiki ...

答案 1 :(得分:0)

尝试使grab .runner保持窗口在顶部。 但这又是在Windows中工作,而不是在linux中工作。

想要两个平台的解决方案,因为产品验证在两个平台上完成