亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我無法理解和解決 tkinter.Tclerror

我無法理解和解決 tkinter.Tclerror

婷婷同學_ 2023-07-18 10:09:18
我無法理解也無法解決我到目前為止編寫的以下代碼中的 tkinter.TclError 。請解決這個問題,我有作業要使用 python 制作 mp3 播放器程序,我想快速提交它。而且我也提供了回溯。 代碼From tkinter importroot = Tk()root.title("Creeper Awww Man MP3 Player")root.geometry("500x400")# Create Playlist Box playlist_box = Listbox(    root,    bg = "black",    fg = "#4666FF",    width = 60)playlist_box.pack(pady=20)# Define Button Image For Controlsback_btn_img = PhotoImage(file='images/back.png')forward_btn_img = PhotoImage(file='images/forward.png')play_btn_img = PhotoImage(file='images/play.png')pause_btn_img = PhotoImage(file='images/pause.png')stop_btn_img = PhotoImage(file='images/stop.png')# Create Button Framecontrol_frame = Frame(root)control_frame.pack(pady=20)# Create Play/Stop etc Buttonsback_button = Button(control_frame, image=back_btn_img,)forward_button = Button(control_frame, image=forward_btn_img,)play_button = Button(control_frame, image=play_btn_img,)pause_button = Button(control_frame, image=pause_btn_img,)stop_button = Button(control_frame, image=stop_btn_img,)back_button.grid(row=0, column=0, padx=10)forward_button.grid(row=0, column=1, padx=10)play_button.grid(row=0, column=2, padx=10)pause_button.grid(row=0, column=3, padx=10)stop_button.grid(row=0, column=4, padx=10)root.mainloop()和錯誤Traceback (most recent call last):  File "mp3_player.py", line 19, in <module>    forward_btn_img = PhotoImage(file='images/forward.png')  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 4061, in __init__    Image.__init__(self, 'photo', name, cnf, master, **kw)  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 4006, in __init__    self.tk.call(('image', 'create', imgtype, name,) + options)_tkinter.TclError: couldn't recognize data in image file "images/forward.png"如果您能幫助我,我將感謝你們所有人,我將不勝感激。
查看完整描述

2 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

情況1:


問題可能是因為您的 tkinter 版本不支持 png。下面是如何繼續使用PIL/ Pillow。


首先安裝它,在你的終端中這樣說。


pip install Pillow

然后...


from PIL import Image, ImageTk #import it

....

back_btn_img = ImageTk.PhotoImage(Image.open('images/back.png')) #instantiate the image

您也可以為其余圖像文件復制相同的格式。


這樣做的一個優點是,您還可以調整圖像大小。


案例2:


該錯誤也可能是因為文件格式不正確,您確定轉換正確還是文件已損壞?您可能想檢查所有這些,并執行正確的轉換方法(如果僅通過更改擴展名進行轉換)。hello.jpg請記住,如果要將文件轉換為 png,您應該使用軟件或在線網站來執行此操作,但不要將文件重命名為hello.png.


希望這有幫助,如果有任何錯誤或疑問,請告訴我。


查看完整回答
反對 回復 2023-07-18
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

使用 PIL :


from tkinter import *

from PIL import ImageTk, Image


root = Tk()


root.title("Creeper Awww Man MP3 Player")

root.geometry("500x400")


# Create Playlist Box 

playlist_box = Listbox(

    root,

    bg = "black",

    fg = "#4666FF",

    width = 60

)

playlist_box.pack(pady=20)


back_btn_img = ImageTk.PhotoImage(Image.open('back.png').resize((50, 50), Image.ANTIALIAS)) 

# .resize(xx, xx) ,, changing image size



# Create Button Frame

control_frame = Frame(root)

control_frame.pack(pady=20)


# Create Play/Stop etc Buttons

back_button = Button(control_frame, image=back_btn_img,)



back_button.grid(row=0, column=0, padx=10)




root.mainloop()


查看完整回答
反對 回復 2023-07-18
  • 2 回答
  • 0 關注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號