#python #tkinter #spyder
Вопрос:
Я пользователь MATLAB и пытаюсь найти что-то похожее на uigetfile.
Я использую Anaconda/Spyder, чтобы предоставить пользователю возможность выбора файла (через диалоговое окно). Я пробовал различные решения, предлагаемые здесь, но диалоговое окно всегда находится за Spyder (никогда не фокусируется). Я также попробовал «easygui», но результат тот же.
Есть какие-либо предложения (ниже приведен код)?
def getfile():
import tkinter as Tkinter, tkinter.filedialog as tkFileDialog
root = Tkinter.Tk()
#root.withdraw()
#root.focus_force()
file_path = tkFileDialog.askopenfilename(parent=root,title='Pick a file')
#root.update()
return file_path
def getfile2():
import easygui
file_path = easygui.fileopenbox()
return file_path
Комментарии:
1. Просто идея, попробуйте добавить
root.after(200, root.focus_force)
непосредственно перед.askopenfilename(...)
2. Спасибо. Это отчасти помогло. Я отвечу на свой вопрос ниже.
Ответ №1:
Благодаря @TheLizzard, ниже приведено то, что работает:
def getfile():
import tkinter as Tkinter, tkinter.filedialog as tkFileDialog
root = Tkinter.Tk()
root.after(100, root.focus_force)
root.after(200,root.withdraw)
file_path = tkFileDialog.askopenfilename(parent=root,title='Pick a file')
return file_path