带图片的Tkinter按钮具有边框

时间:2017-01-30 15:40:24

标签: python image button tkinter

修改

我正在使用图片作为按钮。第三张图片是"开始"按钮和第4个图像是" Numpad"按钮。

按钮占用的空间比图像多,如第一张图片所示。我想带走那个空间,只留下图像空间。

我想摆脱边框占用的空间,因为我希望按钮只占用图像大小的空间。

第一张图片在MainButton类中有这行代码:

self.configure(bg=color['background'], activebackground=color['background'], borderwidth=0, highlightthickness=0)  

第二张图片在MainButton类中有这行代码:

self.configure(bg=color['background'], activebackground=color['background'])  

完整代码:

class MainButton(Button):
    def __init__(self, *args, **kwargs):
        Button.__init__(self, *args, **kwargs)

        self.helv20 = Font(root= self,family="Arial",size=18)
        self.helv18 = Font(root= self,family="Arial",size=16)   

        self.configure(bg=color['background'], activebackground=color['background'], borderwidth=0, highlightthickness=0)   
    def _active(self, event):
        self.configure(image=self.ActiveImage)

    def _inactive(self, event):
        self.configure(image=self.DefaultImage)

class RunButton(MainButton):
    def __init__(self, *args, **kwargs):
        MainButton.__init__(self, *args, **kwargs)

        self.bind("<ButtonPress>", self._active)
        self.bind("<ButtonRelease>", self._inactive)

        self.DefaultImage=PhotoImage(file="img/mainbutton_green.png")
        self.ActiveImage=PhotoImage(file="img/mainbutton_active.png")   

        self.configure(image=self.DefaultImage, compound=CENTER, font=self.helv20)

enter image description here

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

.cblite2只需移除边框(给人以浮雕的印象,因此效果与borderwidth=0相同),但不会缩小图像周围的空间。为此,您可以使用按钮的relief='flat'padx选项:

pady