Python:Tkinter接受的位图和图标

时间:2018-01-03 14:14:12

标签: python tkinter relative-path

我一直在根据自己的需要调整别人的简单项目。在项目目录中有icons目录。在原始项目中,这些图标会像这样加载(tkinter):

root.iconbitmap('icons/pypad.ico')

看起来很公平,但我无法加载它们。路径检查;这有效:

def rcpath(rel_path):
    os.path.join(os.getcwd(), rel_path)

root.iconbitmap(rcpath('icons/pypad.ico'))

为什么这么麻烦?它应该像以前一样工作。最初的项目是在Python 2中,我将它改编为Python 3,这可能是无关紧要的。

UPD:

讨论了实际问题here,并提供了许多解决方案。我已经采用了这个:

rooticon = PhotoImage(file='icons/pypad.gif')
root.tk.call('wm', 'iconphoto', root._w, rooticon)

1 个答案:

答案 0 :(得分:3)

您的功能缺少"返回"关键字,这意味着它将返回None。尝试

def rcpath(rel_path):
    return os.path.join(os.getcwd(), rel_path)

root.iconbitmap('@' + rcpath('icons/pypad.ico'))

更新:包括Bryan Oakley对@的评论。