[英]Python 3 tkinter iconbitmap error in ubuntu
好吧,我有這個:
import tkinter
gui = tkinter.Tk()
gui.iconbitmap(default='/home/me/PycharmProjects/program/icon.ico')
gui.mainloop()`
但是當我跑步時,我得到一個錯誤說
Traceback (most recent call last):
File "/home/spencer/PycharmProjects/xMinecraft/GUI.py", line 17, in <module>
gui.iconbitmap(default='/home/me/PycharmProjects/program/icon.ico')
File "/usr/lib/python3.3/tkinter/__init__.py", line 1638, in wm_iconbitmap
return self.tk.call('wm', 'iconbitmap', self._w, '-default', default)
_tkinter.TclError: wrong # args: should be "wm iconbitmap window ?bitmap?"`
我正在嘗試使用 tkinter 設置我制作的窗口圖標。 我正在使用安裝在 ubuntu 13.10 上的 Pycharm。 我嘗試了各種方法,從將 '/' 更改為 '\' 並在前面添加 Z://,因為那是我的分區名稱。 但我仍然收到錯誤,所以請幫忙。
您需要將路徑指定為第一個位置參數,或者使用關鍵字參數“位圖”。 它的文檔記錄很差,但是需要 bitmap 參數; 你不能只給出default
的關鍵字參數。 事實上,在 python 3 中, bitmap
關鍵字參數已經被移除。
但是,您只能在 Windows 上使用 .ico 文件。 在 ubuntu 和其他 linux 機器上,您需要使用 .xbm 文件,並且需要在其前面加上“@”
這應該僅適用於 Windows:
gui.iconbitmap('/home/me/PycharmProjects/program/icon.ico')
在 ubuntu 上,它需要是這樣的:
gui.iconbitmap('@/home/me/PyCharmProjets/program/icon.xbm')
您不能只將 .ico 文件重命名為 .xbm,它們是完全不同的文件格式。
有趣的研究
png、svg、ico 無效
感謝 sqlitemanager,我在我的機器上找到了一個 xbm (xubuntu - Linux dist)
工具.xbm
注意@ - 代碼是 Lutz “Programming Python” 第 1 章 tkinter103.py 的修改
from tkinter import *
from tkinter.messagebox import showinfo
def reply(name):
showinfo(title='Reply', message='Hello %s!' % name)
top = Tk()
#img = PhotoImage(file='py-blue-trans-out.ico') #no
top.title('Echo')
top.iconbitmap('@tool.xbm') #yes
#top.iconphoto(True, PhotoImage(file='tool.xbm')) #no
Label(top, text="Enter your name:").pack(side=TOP)
ent = Entry(top)
ent.pack(side=TOP)
btn = Button(top, text="Submit", command=(lambda: reply(ent.get())))
btn.pack(side=LEFT)
top.mainloop()
仍然是 2018 年的高排名谷歌問題。 在 python3 中對我有用的是在 Windows 中使用 ico 並在 Linux 中使用 gif :
if ( sys.platform.startswith('win')):
gui.iconbitmap('logo_Wicon.ico')
else:
logo = PhotoImage(file='logo.gif')
gui.call('wm', 'iconphoto', gui._w, logo)
有兩種方式,
1) 在 ubuntu 中使用 xbm 文件,因為 ubuntu 將無法讀取 ico 文件。 但這里的問題是 xbm 只能顯示黑白圖像。
2)使用 tkinter.photoimage 顯示如下圖標圖像,
img = PhotoImage(file='your-icon')
root.tk.call('wm', 'iconphoto', root._w, img)
這里的問題是 photoimage 只能讀取 GIF 和 PGM/PPM 圖像。
在此處查看詳細信息 - https://stackoverflow.com/a/11180300
要在 linux 中顯示彩色圖標,您需要執行以下操作:
import tkinter
window = tkinter.Tk()
window.title("My Application")
img = tkinter.PhotoImage(file='~/pharmapos/pharmapos.png')
window.tk.call('wm', 'iconphoto', window._w, img)
window.mainloop()
我必須轉換為 XBM 格式並使用以下 root.iconbitmap('@imagename.xbm') 但是我的平台是 Ubuntu,我發現我的 os 主題沒有適合他的圖像......
這在 linux mint 中對我有用:
from tkinter import *
from PIL import Image, ImageTk
main_fn=Tk()
log= Image.open("path_to_image.ico")
logo = ImageTk.PhotoImage(log)
main_fn.tk.call('wm', 'iconphoto', main_fn._w, logo)
main_fn.mainloop()
我們可以在 linux 上使用 iconphoto。 彩色圖標也很好用。 您可以使用 .png 文件。 .ico 文件可以使用“轉換”實用程序進行轉換。
convert icon.ico icon.png
首先創建一個 PhotoImage 小部件:
icon = tkinter.PhotoImage(file='icon.png')
然后使用 iconphoto 更改圖標:
root = Tk()
root.iconphoto(False, icon)
參考: 請看這個鏈接
import tkinter gui = tkinter.Tk() gui.iconbitmap() gui.mainloop()
代替 gui.iconbitmap(default='/home/me/PycharmProjects/program/icon.ico') 我使用了 gui.iconbitmap() 這對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.