1

我无法从 tkinterButton命令返回变量。这是我的代码:

class trip_calculator:

    def __init__(self):
        file = self.gui()

    def gui(self):
        returned_values = {}

        def open_file_dialog():
            returned_values['filename'] = askopenfilename()

        root = Tk()
        Button(root, text='Browse', command= open_file_dialog).pack()
        filepath = returned_values.get('filename')
        root.mainloop()
        return filepath
        root.quit()

我只想返回文本文件的文件路径。tkinter 窗口已打开,我可以浏览并选择文件,但它没有return路径。

4

1 回答 1

2

您的代码现在的方式filepath是在您的窗口甚至出现在用户面前之前分配其值。所以字典不可能包含用户最终选择的文件名。最简单的解决方法是放在filepath = returned_values.get('filename')after mainloop,因此在用户关闭窗口时主循环结束之前不会分配它。

from Tkinter import *
from tkFileDialog import *

class trip_calculator:

    def gui(self):

        returned_values = {} 

        def open_file_dialog():
            returned_values['filename'] = askopenfilename()

        root = Tk()
        Button(root, text='Browse', command= open_file_dialog).pack()


        root.mainloop()

        filepath = returned_values.get('filename')
        return filepath

        root.quit()

print(trip_calculator().gui())
于 2013-10-09T20:08:59.197 回答