删除使用图像创建的tkinter按钮的边框

Jar*_*nes 1 python tkinter

我使用程序创建了几个按钮,并使其包含图像。但是,我现在希望删除仍然保留的边框(有关截图,请参见http://i.imgur.com/XRlmq39.png)。

以“后退”按钮的代码为例:

backbutton = ttk.Button(mainframe, command=homereturn)
backbuttonimage = PhotoImage(file="back.gif")
backbutton.config(image=backbuttonimage)
backbutton.pack()
backbutton.grid(column=0, row=1)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Bry*_*ley 8

如果您使用图像来定义自定义按钮,请使用标准按钮类而不是 ttk 按钮类。这将允许您将 borderwidth 属性设置为零:

import tkinter as tk
...
backbutton = tk.Button(..., borderwidth=0)
Run Code Online (Sandbox Code Playgroud)

(无关:调用backbutton.pack()并立即跟随它是没有意义的backbutton.grid(...)- 您只能将一个用于特定小部件,并且您调用的最后一个是有任何效果的那个。在这种情况下,调用pack完全没用)


小智 6

backbutton = tk.Button(...,  highlightthickness = 0, bd = 0)
Run Code Online (Sandbox Code Playgroud)

这适用于Python 3.x,我尝试过...

在此处输入图片说明

 icon = PhotoImage(file="lock.png")
 self.company_lock_button = Button(self.control_lock_frame, image = icon, highlightthickness = 0, bd = 0)
 self.day_lock_button = Button(self.control_lock_frame, image = icon)
 self.hour_lock_button = Button(self.control_lock_frame, image = icon)
Run Code Online (Sandbox Code Playgroud)


Pyt*_*sta 0

这是你可以做到的一种方法..

用于ttk.Style()将按钮的背景颜色设置为主机的颜色。

root_color = "red" #Just an example, can't remember the default tk window color

mainframe = tk.Tk() #or whatever mainframe is
mainframe.configure(bg = root_color)
style = ttk.Style()
style.configure('TButton', background = root_color)
backbutton = ttk.Button(mainframe, command=homereturn)
backbuttonimage=PhotoImage(file="back.gif")
backbutton.config(image=backbuttonimage)
backbutton.pack()
backbutton.grid(column=0, row=1)
Run Code Online (Sandbox Code Playgroud)

附带说明一下,您不必style = ..在此处指定 ttk 按钮,因为您正在配置TButtonttk 使用的默认样式。如果您为此按钮定义了自定义样式,则必须在按钮的关键字参数中指定它。

一个例子是为按钮提供圆形边缘,而不是使用图像来达到所需的效果。