我是一个Python初学者。我正在编写一个简单的GUI代码,其中有一个菜单项“打开”,当点击时请求图像文件与tkFileDialog。它可以很好地读取文件名和路径。我想要返回文件名以便图像可以在tkinter Label中打开和显示。但我不知道如何返回文件名。错误返回文件名读取由tkFileDialog从Python中的菜单回调
这里是我的代码
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()
我甚至通过创建文件名的属性尝试过,但没有帮助.......
感谢您的回答。我也需要其他回调中的图片。我怎样才能做到这一点? – bistaumanga
'self.img'被'setImage(self)'设置一次后,它被打开后,它应该总是可用于其他回调作为'self.img'。 –
非常感谢您的指导。我的问题解决了。 – bistaumanga