为什么 label with image 和 Entry widget 不能放在一起??无法解决这个问题

Why label with image and Entry widget can't be together ?? Can't solve this

伙计们请帮助我,我有这个简单的代码只是为了学习,我可以看到背景图像“etichetta_sfondo”,我什至可以看到条目小部件,但是如何放置条目图片中间的小部件,你怎么把它放在图片中间而不是上面呢?

from tkinter import *
from ctypes import windll
windll.shcore.SetProcessDpiAwareness(1)
window = Tk()
window.title("Gestione spese")
window.state("zoomed")
window.geometry("1500x770")
window.call('wm', 'iconphoto', window._w, PhotoImage(file="trasparente.png"))
testo_nuova_spesa = Entry(window,borderwidth=5,font=("Ink Free",20),width=9,bg="#f2f2f2")
testo_nuova_spesa.pack()
sfondo = PhotoImage(file="soldi.png")
etichetta_sfondo = Label(window,image=sfondo)
etichetta_sfondo.pack()
window.mainloop()

最简单的方法是使用 placerelative position(以百分比表示)和 anchorEntry

的中心
entry.place(relx=0.5, rely=0.5, anchor='center')

这将 Entry 置于 window

的中心

这看起来像在图像的中心,因为图像也在 window 的中心。

import tkinter as tk   # PEP8: `import *` is not preferred

window = tk.Tk()

img = tk.PhotoImage(file="lenna.png")

label = tk.Label(window, image=img)
label.pack()

entry = tk.Entry(window, bg="white")
entry.place(relx=0.5, rely=0.5, anchor='center')

window.mainloop()


如果图像不在中心,那么您可以使用 Label,因为 Entry 的 parent/master 和 place 将放置在 Label 的中心。

此示例将 Entry 置于秒 Label 的中心。

import tkinter as tk   # PEP8: `import *` is not preferred

window = tk.Tk()

img = tk.PhotoImage(file="lenna.png")

label1 = tk.Label(window, image=img)
label1.pack()

label2 = tk.Label(window, image=img)
label2.pack()

entry = tk.Entry(label2, bg="white")
entry.place(relx=0.5, rely=0.5, anchor='center')

window.mainloop()


图片 Lenna 来自维基百科。

PEP 8 -- Style Guide for Python Code