问题描述:

使用tkinter的文件对话框方法filedialog.askopenfilename()时,弹出文件对话框后选择文件后,文件对话框窗口会立即关闭,无法获取选择的文件路径。

问题原因:

该问题通常是因为在执行filedialog.askopenfilename()方法时没有将其作为一个独立的窗口打开,而是将其作为主窗口的子窗口打开,导致选择文件后,主窗口的关闭行为也被传递给了文件对话框窗口,从而导致文件对话框窗口立即关闭。

解决办法:

将文件对话框方法filedialog.askopenfilename()作为一个独立的窗口打开,即使用Toplevel()方法创建一个新的窗口来运行filedialog.askopenfilename()方法。这样选择文件后,主窗口的关闭行为就不会影响文件对话框窗口了。

示例代码:

import tkinter as tk
from tkinter import filedialog

def open_file():
    file_path = filedialog.askopenfilename()
    print(file_path)

root = tk.Tk()
root.geometry('200x200')

btn_open = tk.Button(root, text='打开文件', command=open_file)
btn_open.pack()

root.mainloop()

在该示例代码中,使用Toplevel()方法创建一个新的窗口来运行filedialog.askopenfilename()方法,从而解决了文件对话框窗口立即关闭的问题

tkinter filedialogaskopenfilename运行完立即关闭窗口

原文地址: https://www.cveoy.top/t/topic/eDrU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录