Python 你怎么能在tk的按钮上有一个上面有文本的背景图像呢?
我试图通过添加按钮背景来使tk按钮看起来更好。问题是,对于tk按钮,我可以使用图像或文本,但不能同时使用两者 你怎么能两者兼得 这就是我尝试过的:Python 你怎么能在tk的按钮上有一个上面有文本的背景图像呢?,python,button,tkinter,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_wid
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()
要同时使用图像和文本,必须设置
复合
选项。从:
指定小部件是否应同时显示文本和位图/图像,如果是,位图/图像应相对于文本放置在何处。必须是以下值之一:none、bottom、top、left、right或center。例如,(默认)值none指定应显示位图或图像(如果已定义)而不是文本,值left指定应将位图或图像显示在文本的左侧,值center指定位图或图像应显示在文本顶部
例如:
以下示例使用此图像:
使用component=“center”
时,程序呈现如下:
这并没有把文本放在图像上,这就是我想要的want@Makogan:是,如果使用“中心”,则会显示。中心指定位图或图像应显示在文本的顶部“在顶部,如中,隐藏”it@Makogan当前位置我认为在这种情况下,“在“简单地说,它们围绕着同一点。我强烈建议你尝试一下。我当前的设置似乎有问题,复制粘贴了你的代码,它似乎可以工作,所以我会接受你的答案
import tkinter as tk
image_data = '''
R0lGODdhyABkAKIAAAAAAP8mAP/7AP///wAAAAAAAAAAAAAAACH5BAkAAAQALAA
AAADIAGQAAAP/KLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987/
/AoHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHxOl
wTu+Lx+z+8H6jZ+goOEg4AnhYmKi3yHHIyQkZGOE5KWl5CUCpicnYx1nqGihHCj
pqd+a6irrHlnrbCwY7G0sl+1uKxeubyoXL3AplnBxMJWxciex8nMmFXN0JJU0dS
ZUtXYiVPZ3ILb3eB63+Hk4+Tg5ufc6erY0+3Zz/Du8vPQV/bRw/nFv/zAu/7lAi
Ow1qyCq14hFKVqobM3Dj/RiUhKE0U8miIUzIihNh3HEPo+toglsqTJkyhTqlzJs
qXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKlWZAAA7
'''
root = tk.Tk()
image = tk.PhotoImage(data=image_data)
label = tk.Button(root, image=image, text="Hello, world", compound="center")
label.pack(padx=20, pady=20)
root.mainloop()