Ich habe einige Beiträge zu diesem Thema gesehen und habe die Vorschläge ohne Erfolg versucht. Ich möchte eine Schaltfläche mit einem Bild erstellen. Der unten stehende Code erzeugt den Button ganz gut, aber er zieht einen dünnen Rand hinter das Bild, der hässlich aussieht. Wie kann ich die Knopfleiste loswerden? Ich benutze Python 3.5 unter Mac OS X 10.12.3.Erstellen Sie eine tkinter Bildschaltfläche ohne Rahmen
Hier ist der Code:
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()
Hier ist, was es produziert:
Vielleicht könnten Sie das Bild in ein Label anstelle eines Buttons legen. Ich vermute, das würde Ihnen mehr Kontrolle über den Grenzstil geben. Wenn Sie denken, "aber wie würde ich Mausklicks auf dem Etikett erkennen?", Können Sie dafür die Methode 'bind' verwenden. – Kevin