【问题标题】:Grouping windows in tkinter在 tkinter 中对窗口进行分组
【发布时间】:2016-11-29 19:47:21
【问题描述】:

我有一个 tkinter 应用程序,它有一个主窗口(一个 Tk)和一个附加窗口(一个 Toplevel)。

我希望这些窗口在窗口管理器 (GNOME Shell) 中组合在一起。我认为有必要将两个窗口的 WM_CLASS 资源和 WM_CLASS 名称设置为相同,以实现这一点。

在 Tk 上设置 className 并将 Toplevel 上的 class 设置为我的应用程序名称似乎会更改 WM_CLASS 名称而不是资源,这就是我认为它们没有分组的原因。 Windows 上的xprop WM_CLASS 显示了我为 Tk 上的两个条目选择的名称:WM_CLASS(STRING) = "myapp", "Myapp"。对于 Toplevel,它显示第一个元素的 tk_uid:WM_CLASS(STRING) = "140626444609872", "Myapp"

我也尝试设置窗口的标题,但似乎没有任何区别。

【问题讨论】:

    标签: python tkinter tk gnome-shell


    【解决方案1】:

    您可以使用wm group 命令将窗口组合在一起。某些操作系统/窗口管理器可能不遵守此设置。

    在 tkinter 中,您可以通过在 Toplevel 实例上调用 group 来执行此操作,并将根 Tk 实例作为参数。

    参考:wm (tk)wm (tkinter)

    【讨论】:

    • 这成功了!事实证明 WM_CLASS 不是我需要的。请添加到您的答案中,在 tkinter 中,您需要执行 top_level.group(root),其中 top_level 是 Toplevel,root 是您的 Tk 实例。谢谢!
    • 实际上是我自己编辑的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多