from Tkinter import *
from tkFileDialog import askopenfilename
from PIL import Image
def main():
filename = askopenfilename(filetypes=[("Jpeg","*.jpg")])
return filename
root = Tk()
button = Button(root,text="Open",command=main)
button.pack()
root.title("Image Manipulation Program")
root.mainloop()
我是一般的编程新手,但我试图通过Tkinter GUI库制作成像程序.我需要能够在上面的代码中做的是返回存储在filename中的字符串,以便它在程序的全局范围内,并且我能够使用它.问题是我用按钮调用函数时不知道怎么做.我无法在任何网站上找到这个问题的答案,所以我很感激任何人对这个问题的帮助.
解决方法:
通常,使用全局变量传递程序周围的信息是不好的做法.但是,如果您真的必须这样做,请使用可变数据类型(例如列表或字典)作为全局变量,并从回调函数main更改其内容.
returned_values = {} # Create an empty dict.
def main():
returned_values['filename'] = askopenfilename(filetypes=[("Jpeg","*.jpg")])
# returned_values['filename'] may now be accessed in the global scope.
如果您打算经常这样做,请考虑实现您自己的类来传递信息.
标签:python,tkinter
来源: https://codeday.me/bug/20191009/1875750.html