设置窗口图标tkinter

-1 python tkinter python-3.x

我正在尝试更改我的tkinter窗口上的图标,我认为我的问题源于我缺乏理解课程.

我想知道原因:

import tkinter
root = tkinter.Tk()
img = tkinter.PhotoImage(file = r'stockIcon.gif')
root.tk.call('wm', 'iconphoto', root._w, img)

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

工作得很好.但:

import tkinter

class Test:
    def __init__(self):
        self.root = tkinter.Tk()
        self.img = tkinter.PhotoImage(file = r'stockIcon.gif')
        self.root.tk.call('wm', 'iconphoto', root._w, img)
        self.root.mainloop()

test = Test()
Run Code Online (Sandbox Code Playgroud)

抛出NameError: name 'root' is not defined.我有什么误会?

小智 5

你需要访问root通过self.root

更改:

self.root.tk.call('wm', 'iconphoto', root._w, img)
Run Code Online (Sandbox Code Playgroud)

至:

self.root.tk.call('wm', 'iconphoto', self.root._w, img)
Run Code Online (Sandbox Code Playgroud)