繁体   English   中英

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

[英]Tkinter's button can't change border color

这是我的 Tkinter 代码:

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

但是,在我对 Button 进行网格化后,边框的颜色没有显示出来。 相反,它使用默认的灰色。

您可以将按钮放在自己的框架内,如下所示:

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

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

这对我有用:

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()

在此处输入图片说明

您可以将您的小部件添加到框架,并使框架的高亮背景成为您想要的小部件边框颜色。 代码示例:

import tkinter as tk

root = tk.Tk()

buttonborder = tk.Frame(root, highlightbackground="#37d3ff",
                                  highlightthickness=3, bd=0)
photoshop = tk.Button(buttonborder, text='Photoshop', fg='#37d3ff')
photoshop.pack()
buttonborder.pack()

root.mainloop()

您可以使用LabelFrame()relief来做到这LabelFrame() 在窗口中工作。

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()

不幸的是,没有完美的方法可以做到这一点,但是您肯定可以四处走动并放置一个比实际按钮稍大的 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)`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM