如何在tkinter / ttk python中获取“前景”的值?

时间:2013-05-19 16:34:49

标签: python tkinter ttk

我有一个标签对象,我将改变背景颜色,我想有办法检查给定时间的背景颜色。例如:

root=Tk()
label=ttk.Label(root, text="Hello there", background="#000000", foreground="#ffffff")
label.pack()
root.mainloop()

oldfg=label.cget("foreground")然后调用oldfg给出了相当含糊的内容 <color object at 0x04078168> 。有没有办法获得颜色的十六进制或rgb表示,或者我可以用某种方式使用它?

编辑:在标题中我说前景,在我说的背景代码中,同样适用于两者。

1 个答案:

答案 0 :(得分:2)

我想你已经回答了你自己的问题来证明这一点:

import Tkinter as tk


def swapsies():
    oldfg = label.cget("foreground")
    oldbg = label.cget("background")
    label.config(background=oldfg, foreground=oldbg)
    print "Foreground: {0} Background: {1}".format(oldfg, oldbg)


root = tk.Tk()
label = tk.Label(root, text="Hello there", background="#000000", foreground="#ffffff")
label.pack(side=tk.LEFT)
mega_button = tk.Button(root, text="GO!", command=swapsies)
mega_button.pack(side=tk.LEFT)

root.mainloop()

关闭输出,然后单击按钮交换颜色:

"Foreground: #ffffff Background: #000000"