【问题标题】:How to keep window on top in tcl如何在 tcl 中保持窗口位于顶部
【发布时间】:2016-04-03 18:44:05
【问题描述】:

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

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

我选择瞬态窗口选项。

wm transient .runner .restGUI

这在 Windows 中运行良好,但在 linux 中,瞬态窗口不显示 [x] 关闭按钮。我必须右键单击标题栏才能关闭它。这使得 GUI 无效。

对此有何建议。

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

【问题讨论】:

    标签: tcl tk


    【解决方案1】:

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

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

    这是一个跨平台属性(为少数几个之一),前提是您在足够现代的平台上使用足够现代的 Tk。您可能已经这样做了。

    您还应该设置窗口的样式,使其看起来像一个瞬态等等。最顶层的属性是一个独立的轴。

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

    【讨论】:

    • 总是问:如果其他应用程序也这样做会发生什么?
    【解决方案2】:

    尝试使用grab .runner 将窗口保持在顶部。 但同样,这仅适用于 Windows,不适用于 linux。

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

    【讨论】:

    • 您可能希望将其编辑到您的问题中,因为这在技术上不是一个答案,然后删除此答案。
    猜你喜欢
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多