This is the format of code I currently have:
import Tkinter as tk
class mycustomwidow:
def __init__(self,parent,......)
......
......
tk.Label(parent,image=Myimage)
tk.pack(side='top')
def main():
root=tk.Tk()
mycustomwindow(root)
root.mainlopp()
if __name__ == '__main__':
main()
My problem is: Where should I declare the photo Myimage
that I used in my class mycustomwindow
?
If I put Myimage=tk.PhotoImage(data='....')
before the root=tk.Tk()
like below, it will give me the too early to create image
error as we can't create an image before the root window.
import Tkinter as tk
Myimage=tk.PhotoImage(data='....')
class mycustomwidow:
def __init__(self,parent,......)
......
......
tk.Label(parent,image=Myimage)
tk.pack(side='top')
def main():
root=tk.Tk()
mycustomwindow(root)
root.mainlopp()
if __name__ == '__main__':
main()
If I put Myimage=tk.PhotoImage(data='....')
in the function main()
like this, it says it can't find the image Myimage
in class mycustomwindow
.
import Tkinter as tk
class mycustomwidow:
def __init__(self,parent,......)
......
......
tk.Label(parent,image=Myimage)
tk.pack(side='top')
def main():
root=tk.Tk()
Myimage=tk.PhotoImage(data='....')
mycustomwindow(root)
root.mainlopp()
if __name__ == '__main__':
main()
Is there anything badly wrong with my code structure? Where should I declare Myimage
so that it can be used in class mycustomwindow
?