删除用imag创建的tkinter按钮的边框

2024-04-29 15:59:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我用我的程序创建了几个按钮,并使它们包括图像。不过,我现在希望删除剩余的边框(请参见屏幕截图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)

任何帮助都将不胜感激。


Tags: 代码图像程序comhttp示例屏幕png
3条回答
backbutton = tk.Button(...,  highlightthickness = 0, bd = 0)

这适用于Python 3.x,我试着。。。

enter image description here

 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)

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

import tkinter as tk
...
backbutton = tk.Button(..., borderwidth=0)

(不相关:调用backbutton.pack()并立即使用backbutton.grid(...)是没有意义的——您只能对特定的小部件使用一个,最后一个调用的是具有任何效果的小部件。在这种情况下,对pack的调用是完全无用的)

有一种方法你可以。。

使用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)

另外,您不必在ttk按钮中指定style = ..,因为您正在配置ttk使用的默认TButton样式。如果为此按钮定义了自定义样式,则必须在按钮的关键字参数中指定。

一个例子是给你的按钮圆角边,而不是用图像来达到想要的效果。

相关问题 更多 >