tkinter ttk Entry widget -disabledforeground



当我将状态设置为 disabled 时,我试图更改ttk.Entr小部件中单词的颜色,我查找了手册,有一个名为 disabledforeground 的选项,所以我编写了一个测试片段如下: (顺便说一句,我在 Python 2.7 下)

from Tkinter import *
from ttk import *
root=Tk()
style=Style()
style.configure("TEntry",disabledforeground='red')
entry_var=StringVar()
entry=Entry(root,textvariable=entry_var,state='disabled')
entry.pack()
entry_var.set('test')
mainloop()

但是结果显示"测试"的颜色没有变化,知道出了什么问题吗?

我认为禁用前景是 tk 小部件的一个选项,但不是 ttk 小部件的选项。在此页面上

http://wiki.tcl.tk/38127

您将在适用于 TK 小部件的部分代码中看到类似以下内容:

{-disabledforeground disabledForeground}

此处 -disabledforeground 是指配置选项,disabledforeground(不带前导减号)是指在页面底部附近定义的颜色:

set colors(disabledForeground) {#a3a3a3} ; # -disabledfg

您将在适用于 ttk 小部件的部分代码中看到类似以下内容:

{map -foreground disabled disabledForeground}

此处 -foreground 是配置选项,禁用是小部件可以处于的状态。同样,禁用前景是小部件处于该状态时要使用的实际颜色。

我不是 Tcl 程序员,所以我在这里从 tkinter 和 ttk 推断,但这是我能想到的对这段代码的唯一合理解释。

尝试使用 Style.map 而不是 configure

from Tkinter import *
from ttk import *
root=Tk()
style=Style()
style.map("TEntry",
          foreground=[("active", "black"), ("disabled", "red")]
          )
entry_var=StringVar()
entry=Entry(root,textvariable=entry_var,state='disabled')
entry.pack()
entry_var.set('test')
mainloop()

相关内容

  • 没有找到相关文章

最新更新