【问题标题】:TKinter leaving borders around widgetsTKinter 在小部件周围留下边框
【发布时间】:2014-11-23 00:50:24
【问题描述】:

当我在彩色背景上放置一个按钮时,TKinter 会在小部件周围留下这个奇怪的白色框。例如下面的代码:

from Tkinter import *

root = Tk()
root.geometry("300x100+300+300")
root.configure(bg="red")
button = Button(root, text="Connect", highlightthickness=0)
button.pack()

root.mainloop()  

我可以做些什么来消除空白?

【问题讨论】:

  • 小部件占据屏幕的矩形区域。在 Windows 上,此代码在带有凸起浮雕的浅灰色矩形上显示黑色文本(Windows 上的默认设置)。没有内部圆角矩形。垂直填充大致相同(C 约为高度的 1/3。水平填充要少得多(小于 C 的宽度)。这些细节是系统特定的。PS:这是一个很棒的 mcve(最小,完整,可验证的示例),我可以复制、粘贴和运行。

标签: python python-2.7 user-interface tkinter tk


【解决方案1】:

额外的边框是由highlightthickness 属性引起的。默认值为 1(一);将其设置为零以删除边框。此边框显示按钮何时具有键盘焦点。

但是,您似乎是在 OSX 上运行它。与其他平台相比,OSX 按钮的可配置性稍差。将 highlightthickness 设置为零无济于事。您可以做的最好的事情是将highlightbackground 设置为与背景相同的颜色,以便融入其中。

【讨论】:

  • 他似乎设置了highlightthickness。 linux上没有白边,可能是mac问题?
  • 是的,在我写完答案后,OP 编辑​​了代码以包含highlightthickness
【解决方案2】:

这个问题多年来一直困扰着 Mac。但是从 Python 3.7 开始,从 Python.org 而不是 Homebrew 安装是安全的。当从 Python.org 安装 Python 而不是运行 Homebrew 版本时,此问题就会消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2013-08-19
    • 1970-01-01
    • 2013-08-07
    相关资源
    最近更新 更多