私はpythonの初心者です。クリックするとtkFileDialogで画像ファイルを要求するメニュー項目「開く」がある単純なGUIでコードを書いています。ファイル名とパスを読み取っても問題ありません。ファイル名を返して、画像を開いてtkinter Labelに表示できるようにします。しかし、ファイル名を返す方法がわかりません。
ここに私のコードがあります
from Tkinter import Frame, Tk, Label, Text, Menu, END, BOTH, StringVar
from PIL import ImageTk, Image
import numpy
import tkFileDialog
class DIP(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("DIP Algorithms- Simple Photo Editor")
self.pack(fill=BOTH, expand=1)
menubar = Menu(self.parent)
self.parent.config(menu=menubar)
fileMenu = Menu(menubar)
self.fn=''
fileMenu.add_command(label="Open", command=self.onOpen)
menubar.add_cascade(label="File", menu=fileMenu)
print self.fn #prints nothing here
#self.img=Image.open(self.fn)
def onOpen(self):
ftypes = [('Image Files', '*.tif *.jpg *.png')]
dlg = tkFileDialog.Open(self, filetypes = ftypes)
filename = dlg.show()
self.fn=filename
print self.fn #prints filename with path here
def onError(self):
box.showerror("Error", "Could not open file")
def main():
root = Tk()
ex = DIP(root)
root.geometry("1280x720")
root.mainloop()
if __name__ == '__main__':
main()
ファイル名の属性を作成してみましたが、助けにはなりません........