无法将图像添加到自定义tkinter按钮

问题描述 投票:0回答:1

我尝试在创建一个小项目时学习 tkinter + customtkinter。我从多个地方获取了一些代码。在尝试将图像添加到 ctkinter 按钮时,会弹出以下错误: 给定图像不是 CTkImage 而是 。图像无法在 HighDPI 显示器上缩放,请使用 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()

我希望图像出现在按钮内

python tkinter customtkinter
1个回答
3
投票

使用

customtkinter.CTkImage
而不是
ImageTk.PhotoImage

试试这个。


import tkinter
import customtkinter
from PIL import Image # ,ImageTk ## No need to import this

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()
© www.soinside.com 2019 - 2024. All rights reserved.