5

これは私が現在持っているコードの形式です:

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ですか?

4

1 に答える 1