ImageTk我正在嘗試使用和將圖像放入窗口中PhotoImage。下面是代碼:import tkinter as tkimport random as rfrom PIL import ImageTk, Imagewindow = tk.Tk()HEIGHT = window.winfo_screenwidth()WIDTH = window.winfo_screenheight()RESOL = str(str(HEIGHT) + "x" + str(WIDTH+7) + "+" + str(-7) + "+" + str(0))window.geometry(RESOL)x = int(HEIGHT)/2y = int(WIDTH)/2updatex = HEIGHT + (0.6 * HEIGHT)main = tk.Frame(window, height = WIDTH, width = HEIGHT)main.configure(bg = "white", highlightthickness = 0)main.place(x = x, y = y, anchor = "center")Map = tk.Canvas(window, height = int((900 - int(x))) + int(900), width = int((900 - int(y))) + int(900), bg = "#44b863", highlightthickness = 0)Map.place(x = updatex, y = int(y), anchor = "center")p = tk.PhotoImage(file = "TitleForGameReal.png")play_solo_image = tk.PhotoImage(file = "PlaySoloButton.png")play_duo_image = tk.PhotoImage(file = "PlayDuoButton.png")title = tk.Label(main, image = p, highlightthickness = 0, bd = 0)title.place(relx = 0.5, rely = 0.35, anchor = "center")class CustomButton: def __init__(self, image, master, height, width, bordercolor): self.master = master self.frame = tk.Frame(master, height = height, width = width, highlightthickness = 0) self.image = tk.Label(self.frame, image = image, borderwidth = 0, bg = "dark grey") self.bordercolor = bordercolor def put(self, x, y, command): self.x, self.y = x, y self.frame.place(relx = x, rely = y, anchor = "center") self.image.pack() def enter(event = "<Enter>"): self.image.config(borderwidth = 3) self.image.bind("<Enter>", enter) def leave(event = "<Leave>"): self.image.config(borderwidth = 0) self.image.bind("<Leave>", leave) def bind_command(event = "<Button-1>"): command() self.image.bind("<Button -1>", bind_command)我還將留下圖像作為參考,因為我在 PhotoShop 中編輯了照片以嚴格使其具有透明背景:
1 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
問題是需要一個 PhotoImage 實例image的選項Map.create_image(updatex, y, image = self.image),但你給它一個標簽,所以要修復它只需說。
class Player:
def __init__(self, hp, image):
self.hp = hp
self.image = image #creating an instance variable
self.pic = ImageTk.PhotoImage(self.image) #making an photoimage instance
self.cv = Map.create_image(updatex, y, image = self.pic) #passing the photo image instance
self.pic.image = self.pic #keeping a reference to the image
希望這已經解決了錯誤,如果有任何錯誤或疑問,請告訴我。
添加回答
舉報
0/150
提交
取消