Python tkinter ttk中单选按钮显示大小错误

14

我正在使用Tkinter ttk单选按钮,并且遇到了一个奇怪的问题。最后创建的单选按钮在一开始时似乎比其他单选按钮大。但是,一旦将鼠标放在上面,它就会自动调整到正确的大小。

问题看起来像这样:

enter image description here

以下是我使用的完整代码:

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”主题时才会出现这种情况,这是默认主题(至少在我的机器上)。如果指定其他主题,则问题会消失。


1
似乎与操作系统相关或者取决于tk/python的实现。我刚刚在Ubuntu 14.04上使用Python 3.4进行了检查,没有看到这样的行为。对我来说一切都很正常。您能否提供有关您的设置的更多详细信息和更完整的代码。我们不能只是复制并粘贴您的片段来测试此行为。 - Marcin
1
我写了一个更简单的示例,以避免抛出数百行代码。它创建一个窗口,添加两个单选按钮,并显示它,问题就出现了。我在示例中使用了网格,但使用place也会发生这种情况。如果有帮助的话,我还添加了我的操作系统和Python版本。 - gfrung4
1
是的,现在我可以确认这不是Linux的问题。似乎与操作系统/Python实现有关。因此,我不知道如何解决Windows的问题,因为我只使用Linux。抱歉。 - Marcin
1
我还附上了一个gif,展示它在Linux中的工作方式这里 - Marcin
3
当我在高DPI设置上禁用显示缩放时,例如from ctypes import windll; windll.shcore.SetProcessDpiAwareness(1),我发现了同样的问题。然而,根据微软文档中所述,该功能的最低支持客户端是Windows 8.1。 - Max
显示剩余2条评论
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接