答案 0 :(得分:10)
这是可能的!
如果您查看button documentation,则可以使用图像显示在按钮上。
例如:
from tkinter import *
root = Tk()
button = Button(root, text="Click me!")
img = PhotoImage(file="C:/path to image/example.gif") # make sure to add "/" not "\"
button.config(image=img)
button.pack() # Displaying the button
root.mainloop()
这是一个将图像添加到按钮小部件的简化示例,您可以使用按钮小部件制作更多很酷的内容。
答案 1 :(得分:6)
对于一个 Tkinter 项目,我在 TkinterCustomButton
之上创建了一个 tkinter.Frame
类构建。它在 tkinter.Canvas
上绘制所有形状。您可以像普通的 tkinter.Button
一样使用它,但它是高度可定制的。您可以更改角半径、边框宽度和所有颜色:
因此,如果您希望 tkinter 按钮看起来像问题中的示例一样定制且更现代,则并不总是需要使用图像。
虽然这并不能真正回答问题,但也许这个例子对某人有帮助。
您可以在此处找到 TkinterCustomButton
类和示例程序:
https://github.com/TomSchimansky/GuitarTuner/tree/master/documentation
最简单的例子是:
import tkinter
from tkinter_custom_button import TkinterCustomButton
app = tkinter.Tk()
app.geometry("300x200")
app.title("TkinterCustomButton")
def button_function():
print("Button pressed")
button_1 = TkinterCustomButton(text="My Button", corner_radius=10, command=button_function)
button_1.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)
app.mainloop()
给出:
在 Windows 上我体验到 tkinter 画布的渲染质量非常糟糕,所以圆形,尤其是细边框看起来不太好......
答案 2 :(得分:0)
您可以将图像放置在.py根文件夹中并使用
img = PhotoImage(file="example.gif") # make sure to add "/" not "\"
因为我正在使用Raspberry Pi,并且不确定设置图像文件路径的正确语法。因此,我正在考虑将其放入同一文件夹并尝试。