Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 你怎么能在tk的按钮上有一个上面有文本的背景图像呢?_Python_Button_Tkinter - Fatal编程技术网

Python 你怎么能在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

我试图通过添加按钮背景来使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()

要同时使用图像和文本,必须设置
复合
选项。从:

指定小部件是否应同时显示文本和位图/图像,如果是,位图/图像应相对于文本放置在何处。必须是以下值之一:nonebottomtopleftrightcenter。例如,(默认)值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()