4

私はこのサイトを初めて使用し、Tkinter を使用して Python 2.7 で単純な画像ビューアーを作成しようとしていますが、その中に画像を読み込もうとすると、何も表示されません!何が悪いのかわからない。Windows XP を使用しています。これが私のコードです:

from Tkinter import *
import tkFileDialog
from PIL import ImageTk, Image

root = Tk(className="Image viewer")

canvas_width = 800
canvas_height = 600
root.config(bg="white")

def openimage():
    picfile = tkFileDialog.askopenfilename()
    img = ImageTk.PhotoImage(file=picfile)
    canvas.create_image(0,0, anchor=NW, image=img) 

yscrollbar = Scrollbar(root)
yscrollbar.pack(side=RIGHT, fill=Y)

xscrollbar = Scrollbar(root, orient=HORIZONTAL)
xscrollbar.pack(side=BOTTOM, fill=X)

canvas = Canvas(root, width=canvas_width, height=canvas_height, yscrollcommand=yscrollbar.set, xscrollcommand=xscrollbar.set)
button = Button(root,text="Open",command=openimage)
button.pack(side=BOTTOM)
canvas.pack(side=TOP)
yscrollbar.config(command=canvas.yview)
xscrollbar.config(command=canvas.xview)

mainloop()

更新:ファイルブラウザを削除してファイルへのパスを指定すると機能しますが、ファイルブラウザが必要で、ラベルの使用は機能しますが、スクロールバーは機能しません。写真。

4

2 に答える 2

0

コードの問題についてはわかりませんが、この関数を代わりに使用できます。

def openimage():
    try:
        Artwork.destroy()
    except Exception:
        pass
    picfile = tkFileDialog.askopenfilename()
    img = ImageTk.PhotoImage(file=picfile)
    #canvas.create_image(0,0, anchor=NW, image=img)
    Artwork=Label(root,image=img)
    Artwork.img=img
    Artwork.pack(side=BOTTOM)#do packing urself


これは最小限の実装であることに注意してください。

于 2013-11-12T01:50:01.893 に答える