【问题标题】:Changing background color of ttk entry widget更改 ttk 条目小部件的背景颜色
【发布时间】:2023-02-23 04:28:47
【问题描述】:

我正在尝试更改 ttk 条目小部件的背景颜色。我读了这篇文章 ttk Entry background colour 但我不太明白元素创建的东西。另外,它很旧。所以我想我会在这里问是否有更简单的方法来更改 ttk 小部件的背景颜色,或者如果没有,那么我该怎么做才能更改它?

我当前的代码只是定义一个入口小部件并像这样设置它的背景:

colorEntry = ttk.Entry(root, background='black')

我也使用过样式,但也没有用。

style = ttk.Style()
style.configure("TEntry", background='black')

这两种方法都不会对后台执行任何操作。如果我尝试更改前景等任何其他属性,它们就会起作用。 我在 Windows 10 上使用 python 3.8.3。

【问题讨论】:

  • 如果你想改变输入字段的颜色(白色部分),那么你需要使用样式选项fieldbackground='black',而不是background。但我不确定默认的 Windows 主题是否允许更改此颜色,您可能必须使用不同的主题,例如'蛤'。
  • @j_4321 谢谢!使用不同的主题有效。

标签: python tkinter ttk


【解决方案1】:

创建 Style() 小部件时,您还需要将其应用于要更改样式的小部件。

colorEntry = ttk.Entry(root, style="TEntry")

【讨论】:

  • 我相信您不必为像 TEntry 这样的默认样式名称那样做。但是,如果您创建另一个名称,如 name.TEntry,则必须应用它。
  • 您可能是对的,但是拥有自定义样式是个好主意,以防万一您想要多个条目小部件,您也可以只使用文本小部件并在 configure() 中更改背景颜色,有什么特别的吗您想在文本小部件上使用条目小部件吗?
  • 不是真的,但我已经使用 Entry 小部件制作了很多我的程序并且更改它会很痛苦。最后,如果必须的话,我可能会这样做,但是找到解决方案会很好。
【解决方案2】:

使用style.theme_use('clam')并在Entry参数中添加fieldbackground。

片段:

import tkinter as tk
from tkinter import ttk


root = tk.Tk()
root.geometry("700x350")

style= ttk.Style()
style.theme_use('clam')
style.configure("TEntry", fieldbackground="red")

colorEntry = ttk.Entry(root)
colorEntry.pack(pady=30)
 

root.mainloop()

截屏:

【讨论】:

    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 2014-07-08
    • 2022-06-13
    • 2011-04-30
    • 1970-01-01
    • 2013-04-20
    • 2019-08-27
    • 2011-10-30
    相关资源
    最近更新 更多