Python 2.7 Tkinter如何更改按钮文本的文本颜色

时间:2015-10-04 17:43:56

标签: python button text colors tkinter

button1 =按钮(root,text ='Revert image',foreground =“red”,compound =“center”)

此类代码无效。它说未知选项“-foreground”。

这是完整的代码 -

from Tkinter import *
from ttk import *
def change():
   label.config(text="Hey dude !!")
   label.config(image = img1,background='blue',foreground='yellow')
def click():
         if button1.instate(["disabled"]):
                label.config(image = img1,background='yellow',foreground='green')
                button1.state(['!disabled'])
                button.state(['disabled'])
         else:
                label.config(image = img,background='yellow',foreground='green')
                button1.state(['disabled'])
                button.state(['!disabled'])
root = Tk()
label = Label(root)
img=PhotoImage(file='C:\\Users\\Vivek\\Desktop\\x.gif')
img1= PhotoImage(file='C:\\Users\\Vivek\\Desktop\\y.gif')
img2 = PhotoImage(file='C:\\Users\\Vivek\\Desktop\\z.gif')
button = Button(root)
button.pack()
button1 = Button(root,text='Revert image',compound="center")
img2_small = img2.subsample(30,80)
button.config(image=img2_small,text='Change image',compound='center')
button1.state(["disabled"])
button1.pack()
label.pack()
button.config(command=click)
button1.config(command = click)
label.config(image = img,background='yellow',foreground='green')
label.config(text = 'Hey dude watsup ?? Are you in a need help ?')
label.config(compound = 'left',wraplength=100,font=('Courier',20,'bold'))
label.after(5000,change)
root.mainloop()

4 个答案:

答案 0 :(得分:2)

因为您正在进行全局导入(很少有好主意),并且因为您在tkinter之后导入ttk。两个库都定义了Button小部件,因此ttk Button会覆盖tkinter Button。 ttk Button没有foreground选项。

您应该停止使用全局导入来消除此问题:

import Tkinter as tk
import ttk
...
root = tk.Tk()
...
tk.Button(...)

答案 1 :(得分:0)

所以看看正确here你可以看到"前景"和" fg"选项是一样的。但这只是python3的新版tkinter中的情况,如果你使用旧版本的python2.7,你必须使用" fg"选项。

btn = Button(root, fg='red') #Creates a button with red text

如果您想在之后更改文本颜色,可以使用配置功能实现此目的:

btn.config(fg='blue') #Changes the text color to blue

我希望这会让事情变得清晰起来。 保持编码; D

答案 2 :(得分:-1)

我使用fg

button1 = tk.Button(root, text='hello', fg='red')

编辑:嗯,实际上,fgforeground都适合我。如果你不打扰颜色,其他一切都有效吗?可能是某些其他错误正在传播下来。以下是使用tkinter的简单Hello World程序示例。看看它是否适合你。我认为tkinter的大小写在Python 2和3之间发生了变化。这适用于Python 3。

import tkinter as tk

class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.grid()
        self.create_widgets()

    def create_widgets(self):
        self.TVB1 = tk.StringVar(self, value='hello, there')

        B1 = tk.Button(self)
        # this is an example of how you can define parameters after
        # defining the button
        B1["textvariable"] = self.TVB1
        B1["command"] = self.say_hi
        B1.grid(row=0,column=0)

        self.TVE1 = tk.StringVar(self, value='wubwub')
        E1 = tk.Entry(self, textvariable=self.TVE1)
        E1.grid(row=1, column=0)

        # and this is how you can define parameters while defining
        # the button
        Quit = tk.Button(self, text='QUIT', fg='red',
                              command=self.master.destroy)
        Quit.grid(row=2,column=0)

    def say_hi(self):
        print(self.TVB1.get())
        self.TVB1.set(self.TVE1.get())


root = tk.Tk()
app = Application(root)
app.mainloop()

答案 3 :(得分:-1)

在Python 2.7中尝试:

将Tkinter导入为tk

所以Tkinter用大写的T