2017-01-30 177 views
1

編輯與圖片Tkinter的按鈕有邊框

我使用的圖片作爲按鈕。第三張圖像是「開始」按鈕,第四張圖像是「數字鍵盤」按鈕。

按鈕會佔用比圖像更多的空間,如您在第一張圖像中看到的那樣。我想取走那個空間,所以只有圖像空間被拍攝。


我想擺脫的空間,邊界採取,因爲我想按鈕只佔用圖像大小的空間。

第一圖像具有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

+0

目前還不清楚你問什麼。你寫道:「第一張圖片在MainButton類中有這行代碼...... borderwidth = 0,highlightthickness = 0 ...」。這段代碼是否給你你想要的東西?此外,你的圖像似乎顛倒過來。第二個圖像是我期望的,如果你關閉邊界和高光的問題。此外,第三個(綠色矩形)和第四個(灰色矩形)圖像是什麼?最後,這些tkinter按鈕或ttk按鈕? –

+0

你不能使用'width'和'height'來設置按鈕尺寸嗎?你也可以嘗試'padx'和'pady'。 – furas

+0

@BryanOakley編輯我的帖子。按鈕佔用的空間比他們需要的更多。這些按鈕是tkinter按鈕。 – Soundwave

回答

2

borderwidth=0只是刪除邊界(其中給予救濟的印象,所以它具有相同的效果做relief='flat'),但不降低圖像周圍的空間。要做到這一點,您可以使用該按鈕的padxpady選項:

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