Jac*_*ijm 18 icons tkinter launcher python-3.x
我试图像这样设置一个应用程序图标(python3/tkinter):
Interface()
root.title("Quicklist Editor")
root.iconbitmap('@/home/jacob/.icons/qle_icon.ico')
root.resizable(0, 0)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
无论我做什么,我都会收到一条错误消息(闲置),说:
return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: error reading bitmap file "/home/jacob/.icons/qle_icon.ico"
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Jac*_*ijm 53
问题不是代码,而是图标.我尝试xbm使用另一个程序创建一个比Gimp(一些KDE图标编辑器),虽然它看起来很可怕,但它确实显示了一个图标.我想我必须找到一个为我的Python程序提供"可理解"图标的创建者.
该iconbitmap方法被证明只能是黑白的,所以它毕竟是无用的.
经过长时间的搜索,我找到了为Python 3设置应用程序图标颜色的解决方案(在Linux上).我在这里找到了:
root = Tk()
img = PhotoImage(file='your-icon')
root.tk.call('wm', 'iconphoto', root._w, img)
Run Code Online (Sandbox Code Playgroud)
Lee*_*ker 15
这是一个古老的问题,网上有很多关于它的东西,但是所有这些都是不正确或不完整的,所以让它开始工作我认为在这里记录我的实际工作代码会很好.
首先,您需要创建一个图标并将其保存为两种格式:Windows"ico"和Unix"xbm".64 x 64是一个很好的尺寸.XBM是1位格式 - 像素只是打开或关闭,所以没有颜色,没有灰色.tkinter的Linux实现只接受XBM,即使每个Linux桌面都支持真实图标,所以你只是运气不好.此外,XBM规范对于"on"位是表示黑色还是白色是不明确的,因此您可能必须将某些桌面的XBM反转.Gimp很适合创造这些.
然后将图标放在标题栏中,使用此代码(Python 3):
import os
from tkinter import *
from tkinter.ttk import *
root = Tk()
root.title("My Application")
if "nt" == os.name:
root.wm_iconbitmap(bitmap = "myicon.ico")
else:
root.wm_iconbitmap(bitmap = "@myicon.xbm")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我试过这个,我无法使用Windows 7工作.
找到了解决办法.
使用雅各布的答案,但文件必须是 .gif如果您正在使用我的操作系统,则(Windows 7).
使用MS绘制一个64x64 gif,保存它,使用文件路径和宾果游戏,工作.
这将允许您将PNG文件用作图标,并且它确实呈现颜色.我在Xubuntu 14.04上测试了它,32位用Python 3.4(root是你的Tk对象):
import sys, os
program_directory=sys.path[0]
root.iconphoto(True, PhotoImage(file=os.path.join(program_directory, "test.png")))
Run Code Online (Sandbox Code Playgroud)
(如果要test.png在所有上下文中的相同位置搜索,查找程序目录很重要.os.path.join是一种跨平台的方式添加test.png到程序目录中.)
如果将True更改为False,则不会对不是主窗口的窗口使用相同的图标.
如果这适用于Windows和Mac,请告诉我.
| 归档时间: |
|
| 查看次数: |
38003 次 |
| 最近记录: |