【发布时间】:2017-09-01 17:15:39
【问题描述】:
我看过一些关于这个主题的帖子,并尝试了这些建议但没有成功。我想使用图像创建一个 tkinter 按钮。下面的代码很好地创建了按钮,但它在看起来很难看的图像之外绘制了一个细边框。如何摆脱按钮边框?我在 Mac OS X 10.12.3 上使用 Python 3.5。
代码如下:
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()
这是它产生的结果:
【问题讨论】:
-
也许您可以将图像放在标签而不是按钮中。我怀疑这会让你更好地控制边框样式。如果您在想“但我如何检测标签上的鼠标点击?”,您可以使用
bind方法。