Я даже не знаю, как описать эту проблему - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь вставить пи c в кнопку tkinter
Это мой код:

from tkinter import *
import tkinter as tk
from PIL import Image,ImageTk,ImageOps

class main_class(tk.Tk):
    def __init__(self):
        self.window = tk.Tk()
        self.window.geometry("1920x1080")
        self.window.configure(background='grey')

        #opening play pic and resizing it to fit into button
        self.play_pic = Image.open("play_pic.jpg")
        self.play_pic_size = (11,49)
        self.play_pic = ImageOps.fit(self.play_pic,self.play_pic_size,Image.ANTIALIAS)
        self.play_pic = ImageTk.PhotoImage(self.play_pic)


        #play button
        self.play_button = Button(self.window,image=self.play_pic,command = self.play,height =11 ,width = 49).place(x=800,y = 180)


        self.window.mainloop()

    def play(self):
        print('Everything is working fine so far')


#creating an object
object = main_class()
object.play()

Вот как должен выглядеть результат:

enter image description here

И вот что происходит: enter image description here

Это «play_pi c .jpg» на случай, если вы нужно это:

enter image description here

Любая помощь очень ценится !!

1 Ответ

0 голосов
/ 03 мая 2020

В вашем коде есть две ошибки. Во-первых, вы пытаетесь преобразовать изображение в ширину всего 11 пикселей и высоту 49 пикселей с помощью следующих утверждений:

    self.play_pic_size = (11,49)
    self.play_pic = ImageOps.fit(self.play_pic,self.play_pic_size,Image.ANTIALIAS)

Во-вторых, независимо от размера изображения, вы заставляете кнопку быть ширина 11 пикселей и высота 49 пикселей:

    self.play_button = Button(...,height =11 ,width = 49  ).place(x=800,y = 180)

Если вы хотите изменить размер изображения, чтобы оно соответствовало вашим желаниям, нет необходимости запрашивать указанную кнопку c размер Он будет автоматически уменьшаться или увеличиваться в соответствии с изображением.

Первый шаг - определить self.play_pic_size как приемлемый размер. Затем удалите height =11 ,width = 49 из определения кнопки.

...