Невозможно добавить изображение на кнопку customtkinter

я пытаюсь изучить tkinter + customtkinter при создании небольшого проекта. Я взял кусочки своего кода из разных мест. При попытке добавить изображение к кнопке ctkinter появляется следующая ошибка: Данное изображение не является CTkImage, а <class 'PIL.ImageTk.PhotoImage'>. Изображение нельзя масштабировать на дисплеях с высоким разрешением, вместо этого используйте CTkImage.

Код:

      import tkinter
import customtkinter
from PIL import Image,ImageTk

customtkinter.set_appearance_mode("System")  # Modes: system (default), light, dark
customtkinter.set_default_color_theme("blue")  # Themes: blue (default), dark-blue, green

app = customtkinter.CTk()  # create CTk window like you do with the Tk window
wdth = app.winfo_screenwidth()
hgt = app.winfo_screenheight()
app.geometry("%dx%d"%(wdth,hgt))

def button_function():
    print("button pressed")

img1=ImageTk.PhotoImage(Image.open(r"C:\Users\Vedant\Desktop\py project\pizzalogo-removebg-preview.png"))

# Use CTkButton instead of tkinter Button

button = customtkinter.CTkButton(master=app,image = img1, text="",width=500,height=200, command=button_function,compound='left')
button.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)

app.mainloop()

Я ожидал, что изображение появится внутри кнопки

1 ответ

использоватьcustomtkinter.CTkImageнетImageTk.PhotoImage.

Попробуй это.

      
import tkinter
import customtkinter
from PIL import Image,ImageTk

customtkinter.set_appearance_mode("System")  # Modes: system (default), light, dark
customtkinter.set_default_color_theme("blue")  # Themes: blue (default), dark-blue, green

app = customtkinter.CTk()  # create CTk window like you do with the Tk window
wdth = app.winfo_screenwidth()
hgt = app.winfo_screenheight()
app.geometry("%dx%d"%(wdth,hgt))

def button_function():
    print("button pressed")

img1=customtkinter.CTkImage(Image.open(r"C:\Users\Vedant\Desktop\py project\pizzalogo-removebg-preview.png"))

# Use CTkButton instead of tkinter Button

button = customtkinter.CTkButton(master=app,image = img1, text="",width=500,height=200, command=button_function,compound='left')
button.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)

app.mainloop()
Другие вопросы по тегам