ルートにある場合はうまくいった。。。。。。変数は、すべてグローバルだからね!
(関数でない場合)
img = Image.open( '1215_96.png' )
img = ImageTk.PhotoImage(img)
canvas = tkinter.Canvas(root, bg = "black", width=400, height=300)
canvas.create_image(30, 30, image=img, anchor=tkinter.NW)
説明だけど
1.ファイルからイメージを読み込む
2.イメージの変換(IPL)からtkinterで使えるのにするみたい
3.キャンバスを作成
4.イメージを位置指定してソースを指定
ここで問題が発生した!
関数にして違う画像を表示しようとしたが、できなかった!
いろいろぐぐると、こんな感じだと思ったが違っていた。(もちろんテキストだが)
因みにテキストは、関数内でできる!
因みにテキストは、関数内でできる!
text = canvas.create_text(200, 200, text="old text") canvas.delete(text) text = canvas.create_text(200, 200, text="old text")
こちらは、別の方法、
text = canvas.create_text(200, 200, text="old text")
canvas.itemconfig(text, text="new text")
原因は、黄色の部分のimageを指定いるものが、グローバル変数でないと駄目という事みたいだ。
canvas.create_image(30, 30, image=img, anchor=tkinter.NW)
結論、
イメージの変数指定の場合、グローバル変数にする事!
(キャンバスの画像は消えるが、画像は表示されないぞ~)
データ量が多いので、グローバルにしかできないと思っておこう