【发布时间】: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...