【问题标题】:Python tkinter ttk one radio button appears the wrong sizePython tkinter ttk 单选按钮出现大小错误
【发布时间】:2015-04-13 23:40:57
【问题描述】:

我正在使用 Tkinter ttk 单选按钮,但有一个特殊问题。最初创建的最后一个单选按钮看起来比其他单选按钮大。一旦鼠标放在它上面,它就会捕捉到正确的大小。

问题如下:

这是我正在使用的完整代码:

import tkinter
from tkinter import ttk

root = tkinter.Tk()

radioSelect = tkinter.IntVar()
radio1 = ttk.Radiobutton(root, text="A", variable=radioSelect, value=1)
radio2 = ttk.Radiobutton(root, text="B", variable=radioSelect, value=2)

radio1.grid()
radio2.grid()

root.mainloop()

如果我使用 gridplace,它会出现,并且它会出现在 复选框 以及 单选按钮 上.如果我使用 tkinter 单选按钮而不是 ttk 单选按钮,则不会出现此问题,但我想使用 ttk 单选按钮,因为它们看起来更好。

我正在运行 Windows 7 64 位 Python 版本

3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:45:13) [MSC v.1600 64 bit (AMD64)]

我已经搜索过,但找不到有类似问题的人。

这是怎么回事?

更新:这仅在使用“vista”主题时发生,这是默认的(至少在我的机器上)。如果指定了另一个主题,问题就会消失。

【问题讨论】:

  • 似乎与操作系统相关或依赖于 tk/python 实现。我刚刚检查了在 ubuntu 14.04 上使用 python 3.4 并没有看到这种行为。对我来说一切似乎都很好。您能否提供有关您的设置的更多详细信息以及更完整的代码。我们不能只是复制并粘贴您的 sn-p 来测试这种行为。
  • 我写了一个更简单的例子来避免抛出数百行代码。它创建一个窗口,添加两个单选按钮并显示它,然后问题就出现了。我在示例中使用了网格,但它也发生在位置上。如果有帮助,我还添加了我的操作系统和 Python 版本。
  • 是的。所以现在我可以确认它在 Linux 中不是问题。似乎依赖于 OS/python 实现。因此,我不知道如何为 Windows 解决它,因为我只使用 Linux。对不起。
  • 我还附上了 gif,展示了它在 linux 中的工作原理here
  • 当我在高 DPI 设置下禁用显示缩放时,我发现了同样的问题,例如 from ctypes import windll; windll.shcore.SetProcessDpiAwareness(1)。但是,该功能的最低支持客户端是 Windows 8.1,如 MS 文档中所述。

标签: python tkinter ttk


【解决方案1】:

正如一些评论所说,这一定是操作系统相关的问题,我测试了你的代码,一切正常,工作正常,不幸的是,经过长时间的搜索,我发现无法调整按钮大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 2014-01-04
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多