【问题标题】:Python tkinter askopenfilename was working for me and is now not respondingPython tkinter askopenfilename 为我工作,现在没有响应
【发布时间】:2019-12-29 02:08:07
【问题描述】:

我正在使用 Python 和 tkinter 开发一个程序,该程序从用户从他们的目录中添加一个文本文件开始。我用 tkinter 构建了一个 GUI,它提供了一个要按下的按钮和一个弹出窗口供他们选择他们的文件——它工作正常,然后突然当我尝试运行它时,它会在我按下时开始“无响应”该按钮用于启动弹出窗口。

我在 Jupyter 笔记本的 Windows 10 上运行 Python 3.7.3; tkinter 版本是 8.6。我有 8 GB 的 RAM,但我没有使用超过 80% 的内存。

我尝试查看一些类似的 Stack Overflow 问题,例如这里和这里的问题:

windows thinks tkinter is not responding

Python tkinter askopenfilename not responding

尝试 askopenfilenames() 无效;也没有添加 root.update() 或 %gui tk。

这是我正在使用的代码:

import tkinter as tk
from tkinter import *
from tkinter import messagebox
from tkinter.filedialog import *

root = Tk()

topFrame=Frame(root)
topFrame.pack()

middleFrame=Frame(root, width=200, height=250, 
                  highlightbackground="yellow", 
                  highlightthickness=3, 
                  borderwidth=2, 
                  relief=RAISED)
middleFrame.pack()

bottomFrame=Frame(root)
bottomFrame.pack()

ourdirectory=[]

def load1():
    f1 = askopenfilename(filetypes=(('TXT files','*.txt'), ('All files', '*.*')))
    ourdirectory.append(f1)

mylab = Label(topFrame, text="Hello and welcome!")
mylab.pack()

button = Button(bottomFrame, text="Add File", command=load1)
button.grid(row=5, sticky=W)

root.mainloop()

当按下“添加文件”按钮时,我希望程序会启动一个弹出窗口,用户可以在其中导航文件目录。取而代之的是,标题文本只是淡出并且没有响应——单击窗口会导致它宣布它已停止响应。 (这也会导致 Jupyter 内核死机。)不过,当我运行代码但关闭主窗口而不按“文件添加”按钮时,它会正常关闭,并且没有任何冻结或中断。

【问题讨论】:

  • 似乎对我有用....更新您的答案以包括 Python 版本和您使用的计算机 + OS...

标签: python tkinter


【解决方案1】:

我在运行一些会打开、修改和覆盖图像的代码时遇到了同样的问题。一切都按预期工作,直到突然 askopenfilename() 开始没有响应并且没有打开文件对话框窗口。

我尝试更改 askopenfilename() 的初始目录并从单独的文件和命令行调用该方法,但没有成功。

我打开的一个窗口是一个目录(与我正在使用的目录不同),无法加载文件缩略图并且无法打开文件。关闭窗口后,屏幕会“重新加载”,某些程序会打开(例如便笺,它之前关闭但通常会在重新启动时打开),并且该方法恢复了正常功能。

【讨论】:

    猜你喜欢
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2020-11-11
    • 1970-01-01
    相关资源
    最近更新 更多