如何在tk的按钮上的顶部有文本的背景图像?

时间:2018-09-29 17:10:11

标签: python button tkinter

我试图通过添加按钮背景来使tk按钮看起来更好。问题是,我可以将图片或文本用于tk按钮,但不能同时使用两者。

你们怎么都可以?

这是我尝试过的:

from tkinter import *
from PIL import Image, ImageTk

print("I ran")

master = Tk()

canvas_width = 800
canvas_height = 400
window = Canvas(master, 
           width=canvas_width,
           height=canvas_height)

img = Image.open("images/button_black.png").resize((80,40))
ph_image = ImageTk.PhotoImage(img)

l = Label(master, text='Button', image=ph_image, compound=CENTER, fg="white")
l.pack(side=LEFT)

button = Button ( master, image=l)

window.pack()

mainloop()

1 个答案:

答案 0 :(得分:1)

要同时使用图像和文本,必须设置"选项。来自canonical documentation

  

指定小部件是否应同时显示文本和位图/图像,如果是,则指定相对于文本放置位图/图像的位置。必须是以下值之一:底部顶部 ,或居中。例如,(默认)值指定应显示位图或图像(如果已定义)而不是文本,而值 left 指定应显示位图或图像应该显示在文本的左侧,而值 center 指定应将位图或图像显示在文本的顶部。

示例:

以下示例使用此图像:

enter image description here

程序在使用compound时呈现如下:

enter image description here

compound="center"