1
이 주제에 대한 몇 가지 게시물을 보았으며 제안없이 성공을 거두었습니다. 이미지를 사용하여 tkinter 버튼을 만들고 싶습니다. 아래의 코드는 버튼을 잘 만들지 만,보기 흉한 이미지 너머의 얇은 테두리를 그립니다. 단추 테두리를 제거하려면 어떻게해야합니까? Mac OS X 10.12.3에서 Python 3.5를 사용하고 있습니다.테두리없이 tkinter 이미지 버튼 만들기
여기에 코드입니다 :
여기from tkinter import *
from tkinter import ttk
sDefaultImage = None
def sStockPileObserver():
print("Button clicked")
def main():
global sDefaultImage
sRoot = Tk()
sMainFrame = ttk.Frame(sRoot, padding="3 3 12 12")
sMainFrame.grid(column=0, row=0, sticky=(N, W, E, S))
sMainFrame.columnconfigure(0, weight=1)
sMainFrame.rowconfigure(0, weight=1)
sMainFrame.rowconfigure(2, minsize=85)
sDefaultImage = PhotoImage(file='backDimmed.gif')
s = ttk.Style()
bg = s.lookup('TFrame', 'background')
s.configure("SolitaireCard.TButton", borderwidth=0, background=bg, highlightbackground=bg, \
highlightthickness=0, activebackground=bg, activeforeground=bg, padx=0)
sStockPileButton = ttk.Button(sMainFrame, image=sDefaultImage, style="SolitaireCard.TButton", width=0, command=lambda: sStockPileObserver())
sStockPileButton.grid(column=1, row=1, sticky=(W, E), padx=0)
return sRoot
sRoot = main()
sRoot.mainloop()
그것이 생산하는 것입니다 : 당신이 버튼의 모양을 많이 제어 할 수 없습니다
OSX와 Windows에서
아마도 단추 대신 레이블에 이미지를 넣을 수 있습니다. 나는 그것이 당신에게 국경 스타일을보다 잘 제어 할 수 있다고 생각합니다. "하지만 어떻게 레이블에 마우스 클릭을 감지하겠습니까?"라고 생각한다면, 당신은 그것을위한'bind' 메소드를 사용할 수 있습니다. – Kevin