我用我的程序创建了几个按钮,并且让它们包含了图片。但是,现在我想去掉剩下的边框(截图见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)
任何帮助都将不胜感激。
9条答案
按热度按时间ct2axkht1#
这适用于Python 3.x,我试过...
c9x0cxw02#
如果你使用图像来定义一个自定义按钮,使用标准按钮类而不是ttk按钮类,这样你就可以把borderwidth属性设置为零:
(不相关:调用
backbutton.pack()
后立即调用backbutton.grid(...)
是没有意义的--你只能为一个特定的小部件使用一个,最后调用的那个才有效果。在这种情况下,调用pack
是完全无用的)ttp71kqs3#
在使用新Mac时,我遇到了同样的问题,其他答案都没有完全删除按钮周围的边框。我发现将
highlightbackground
设置为画布的背景色就可以了。epggiuax4#
可以使用highlightthickness=0和bd=0
hiz5n14c5#
到目前为止提供的解决方案都不适用于我的情况。
(我只能怀疑这与最近版本的新MacOS GUI风格政策有关(我使用的是大苏尔)。此外,其他风格选项在MacOS上不起作用,例如,浮雕选项对按钮的外观没有任何影响。
下面是我的解决方案:当你把一个图像放到一个按钮上时,选项 * width * 和 * height * 以像素为单位。当你选择小的值,例如10x10,边框似乎被图像覆盖了。瞧!
ssm49v7z6#
这里有一个方法你可以做到这一点..
使用
ttk.Style()
将按钮的背景颜色设置为主机的颜色。顺便说一句,你不必在ttk按钮中指定
style = ..
,因为你配置的是ttk使用的默认TButton
样式,如果你为这个按钮定义了一个自定义样式,你必须在按钮的关键字参数中指定。一个例子是给你的按钮圆边,而不是使用图像,以达到预期的效果。
csga3l587#
如果将
import
函数用作:bd = 0
不会显示边框。kwvwclae8#
我也遇到过同样的问题,无论是
bd=0
还是highlichtthickness=0
都不能单独解决问题,我甚至怀疑relief
选项会起作用。最后帮助(我)的是:pady=0,padx=0
所以对于这个问题:
backbutton.config(image=backbuttonimage, highlichtthickness=0, pady=0, padx=0)
可以工作。30byixjq9#
并非所有主题都支持更改
borderwidth
。请尝试使用tkinter.tk
而不是ttk.Button
。使用关键字
borderwidth=0
作为Button的参数。不能同时使用
backbutton.pack()
和backbutton.grid()
。可以选择其中一个。片段:
无边框屏幕截图: