How to change the color of ttk button

前端 未结 3 1858
长发绾君心
长发绾君心 2020-12-31 05:37

I am using Python 3.x on Windows.

My problem is I want to customize a button widget of ttk by completely changing its background and foreground color.

3条回答
  •  轮回少年
    2020-12-31 06:07

    Unfortunately, there isn't an easy way to change the foreground of a button from the ttk library. It is always the standard Windows gray like in your picture.

    But you can easily get what you want with a normal tkinter.Button if you set the right options. Below is an example script:

    import tkinter as tk
    
    root = tk.Tk()
    btn = tk.Button(root, 
                    bg='#000000',
                    fg='#b7f731',
                    relief='flat',
                    text='hello button',
                    width=20)
    btn.pack()
    
    root.mainloop()
    

    And here is what it will look like:

    enter image description here

    Also, the shade of green I picked was just an example one that I thought was pretty close to what you wanted. But you can specify any hex color code you want. If you need to turn a RGB value into hex, a simple trick is to use str.format like so:

    >>> rgb = (183, 247, 49)
    >>> '#{:02x}{:02x}{:02x}'.format(*rgb)
    '#b7f731'
    >>>
    

提交回复
热议问题