У меня есть массив путей к изображениям и функция, которая находит пути, связанные с кнопками, где я хочу отобразить изображение

Я уже пробовал добавлять

    file_path = photo.name
    img = Image.open(file_path)
    photo_image = ImageTk.PhotoImage(img)
    tk.Label(window, image=photo_image).pack(side=tk.TOP)

К моей функции, но фотографии оказываются слишком большими, и я хочу, чтобы изображения были размещены прямо над кнопками, чтобы я знал точные координаты x-y, я хочу, чтобы изображения были такими, мне просто нужен способ получить их там и сделать их меньше

0
Tyler Strouth 12 Апр 2019 в 05:43

2 ответа

Лучший ответ

Чтобы изменить размер изображения, передайте кортеж размером в пикселях:

img = Image.open("1.bmp").resize((640, 480))

Чтобы разместить изображение прямо над кнопками, вы можете использовать место.

tk.Label(root, image=photo_image).place(x=0,y=0) #change x and y to your desired value

Вы также можете получить текущее местоположение вашего виджета кнопки, чтобы вычислить точное местоположение, где вам нужно place вашего ярлыка:

x,y = widget.winfo_x(), widget.winfo_y()

Подвести итог:

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()
root.geometry("500x500")

def place_image():
    x, y = button1.winfo_x(), button1.winfo_y()
    tk.Label(root, image=photo_image).place(x=x,y=y+20)

button1 = tk.Button(root,text="Click me",command=place_image)
button1.pack()
img = Image.open("1.bmp").resize((400, 300))
photo_image = ImageTk.PhotoImage(img)

root.mainloop()
0
Henry Yik 12 Апр 2019 в 03:15

Вы можете разместить метку в определенных пиксельных координатах на холсте, используя .place (). Вы также можете определить ширину и высоту метки в пикселях внутри скобок. Следовательно, это будет определять ширину и высоту изображения в пикселях.

Например:

tk.Label(window, image=photo_image).place(x=300, y=400, width=200, height=50)

Place () Пиксельные координаты работают в tkinter следующим образом (для холста размером 600 на 600 пикселей):

diagrma

Увеличение координаты X виджета tkinter перемещает его вправо. Увеличение координаты Y виджета tkinter перемещает его вниз.

0
Tom 12 Апр 2019 в 03:32