Это формат код я в настоящее время:Python Tkinter PhotoImage
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()
Моей проблема: Где я должен объявить фотографию Myimage
, что я использовал в моем классе mycustomwindow
?
Если я положил Myimage=tk.PhotoImage(data='....')
перед root=tk.Tk()
, как показано ниже, это даст мне ошибку too early to create image
, поскольку мы не можем создать изображение перед корневым окном.
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()
Если я ставлю Myimage=tk.PhotoImage(data='....')
в функции main()
, как это, он говорит, что не может найти изображение Myimage
в 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()
Есть что-то плохое в моей структуре кода? Где я должен объявить Myimage
, чтобы его можно было использовать в class mycustomwindow
?