ubuntu18.04+Python 3.6+加载GUI 自定义图标出错

在Ubuntu 18.04上使用Python 3.6进行GUI开发时遇到了加载自定义图标(.ico)的错误,错误提示为 '_tkinter.TclError: bitmap "/home/saic/Downloads/122.ico" not defined'。原因是必须指定路径作为位置参数或使用'bitmap'关键字参数,且在Ubuntu等Linux系统中需要使用.xbm文件格式,不能直接将.ico文件更改为.xbm,因为两者格式不同。解决方案是在Windows上使用.ico文件,在Ubuntu上使用以'@'前缀的.xbm文件。

ubuntu 18.04+Python 3.6+加载GUI 自定义图标出错

win = tk.Tk()                                      # Create instance
win.title("Python GUI")
# Change the main windows icon
win.iconbitmap(r'/home/saic/Downloads/122.ico')

报错:_tkinter.TclError: bitmap "/home/saic/Downloads/122.ico" not defined

原因:

You need to either specify the path as the first positional argument, or use the keyword argument "bitmap". It's rather poorly documented, but the bitmap argument is required; you can't just give the default keyword argument. In fact, the bitmap keyword argument has been removed in python 3.

However, you can only use .ico files on windows. On ubuntu and other linux boxes you need to use a .xbm file, and need to prefix it with "@"

This should work on windows only:

win.iconbitmap(r'/home/saic/Downloads/122.ico')

On ubuntu, it would need to be something like this:

win.iconbitmap('@/home/saic/Downloads/122.xbm')

You can't just rename a .ico file to .xbm, they are completely different file formats.

出处:https://stackoverflow.com/questions/20860325/python-3-tkinter-iconbitmap-error-in-ubuntu

附赠在线转XBM格式网站:https://onlineconvertfree.com/zh/convert-format/bmp-to-xbm/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值