Tkinter的按钮无法更改边框颜色

时间:2017-11-07 10:50:58

标签: python tkinter

这是我的Tkinter代码:

Photoshop = Tkinter.Button(root, 
    text = 'Photoshop',
    fg = '#37d3ff',
    bg = '#001d26',
    bd =  10, 
    highlightthickness=4, 
    highlightcolor="#37d3ff", 
    highlightbackground="#37d3ff", 
    borderwidth=4)

然而,在我按下按钮后,边框的颜色不显示。相反,它使用默认灰色。

5 个答案:

答案 0 :(得分:2)

这对我有用:

import Tkinter as tk

root = tk.Tk()

Photoshop = tk.Button(root, text = 'Photoshop',
                      fg = '#37d3ff',
                      bg = '#001d26',
                      bd =  10, 
                      highlightthickness=4, 
                      highlightcolor="#37d3ff", 
                      highlightbackground="#37d3ff", 
                      borderwidth=4)
Photoshop.pack()

root.mainloop()

enter image description here

答案 1 :(得分:1)

您可以做的就是将按钮放置在自己的框架中,如下所示:

    buttonborder = Tkinter.Frame(root,
                                 highlightbackground="#37d3ff",
                                 highlightcolor="#37d3ff",
                                 highlightthickness=4,
                                 bd=0)

    photoshop = Tkinter.Button(buttonborder, 
                               text='Photoshop',
                               fg='#37d3ff',
                               bg='#001d26',)

答案 2 :(得分:0)

您可以将窗口小部件添加到框架中,并使框架的突出显示背景成为窗口小部件边框所需的颜色。代码示例:

100=[Employee [id=102, salary=30000, name=emp 3, age=20]]
101=[Employee [id=104, salary=20000, name=emp 5, age=34]]
102=[Employee [id=106, salary=16000, name=emp 7, age=56], Employee [id=107, salary=16000, name=emp 8, age=65]]
107=[Employee [id=108, salary=12000, name=emp 9, age=74]]

答案 3 :(得分:0)

您可以使用LabelFrame()relief进行操作。 在Windows中工作。

from tkinter import *

App = Tk()

Border = LabelFrame(App,
                    bd=5, #<- Borderwidth.
                    bg="blue", #<- Border color.
                    relief=FLAT)
Border.pack(padx=10, pady=10)

Btn1 = Button(Border, #<- in Border Widget.
              text="Button", 
              font="Arial 16 bold",
              width=16,
              bg="red",
              fg="white",
              relief=FLAT)
Btn1.pack()

App.mainloop()

答案 4 :(得分:0)

不幸的是,没有完美的方法可以做到这一点,但是您确实可以绕过并放置一个比实际按钮稍大的 tkinter 框架,通过使用框架作为彩色边框将它们分开,像这样.应该适用于 Win 和 Mac 或任何其他操作系统。 (假设您已经知道如何使用 tkinter 根窗口..) `borderFrame = Frame(root, bg="red(你想要的颜色)") borderFrame.pack(padx=21, pady=21)

 button = Button(borderFrame, bg="blue",text="click me", relief='flat')
 button.pack(padx=20, pady=20)`
相关问题