【问题标题】:Tkinter GUI Python background colorTkinter GUI Python 背景颜色
【发布时间】:2012-07-31 19:15:45
【问题描述】:

我正在编写一个带有按钮、图形、滑块等的 Tkinter 应用程序,但我无法让它们的背景颜色统一。

import Tkinter
from Tkinter import *
root = Tk()
root.title('Button')
root.configure(bg='gray')

Button(text='Button', bg='gray').pack(side=BOTTOM)
root.mainloop()

如果你运行这段代码,主窗口的背景确实是灰色的,但是按钮的图像周围有一个白色区域。有没有办法解决这个问题?

【问题讨论】:

  • borderwidth=0 有帮助吗?
  • 我不确定是什么导致了您的问题,因为当我自己执行代码时,按钮周围没有任何“白色区域”。我的顶部和左侧有点白色,但这是由于按钮的浮雕设置所致。
  • 哇,回顾旧帖子,看到人们在 1 个脚本中两次导入相同的内容

标签: python user-interface button tkinter


【解决方案1】:

扩展 mgilson 的评论,我尝试使用borderwidth=.001,据我所知,它“有效地”删除了按钮上的边框。希望这会有所帮助!

import Tkinter
from Tkinter import *
root =Tk()
root.title('Button')
root.configure(bg='gray')

Button(text='Button',bg='gray',borderwidth=.001).pack(side=BOTTOM)
root.mainloop()

【讨论】:

  • 现在我对它进行了更多研究,borderwidth=.1 也同样有效
  • 另外,如果您有兴趣在按下按钮时保持按钮灰色,您可以使用backgroundactive='gray'
  • 除非我们使用的 Tk 版本有一些差异,否则我肯定会在这里得到两种替代方案的凹陷效果。如果您尝试基于坐标进行回调,我可以看到按钮大小的 1-2 像素变化会产生影响,但我怀疑您会注意到任何视觉差异。
  • 我明白了,只使用relief='flat' 仍然会给你在凹陷部分周围的边框。
【解决方案2】:

如果问题是您不喜欢系统上的默认按钮效果,则不必更改边框宽度;相反,您可以在按钮声明中设置relief='flat'。这样,当您单击按钮时,您仍然会看到“凹陷”的外观,如果您只是将 borderwidth 设置为 0 或接近它的值,您将不会看到这种外观。减少borderwidth 的另一个问题是它可能会使按钮比预期的要小。

【讨论】:

    【解决方案3】:

    您所看到的听起来像是将highlightthickness 设置为非零值(这是默认值)的结果。您可以尝试将其设置为零,或将highlightbackground 设置为您的背景颜色。

    【讨论】:

      猜你喜欢
      • 2016-09-10
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 2020-10-09
      • 2023-04-10
      • 2014-07-03
      • 1970-01-01
      • 2017-08-20
      相关资源
      最近更新 更多