【发布时间】:2019-08-23 22:49:41
【问题描述】:
我有一个尝试用 tkinter 打开文件的 python 程序。用户必须单击一个按钮,该按钮会打开一个浏览文件对话框。在我尝试在文件名中进行一些字符串搜索之前,它一直在完美地工作。现在每次我运行程序并单击按钮时,窗口都会显示“无响应”并死掉。
我尝试在按钮处理程序中注释掉除请求文件对话框之外的所有内容,但它仍然不起作用。我将其注释掉并打印了一个字符串,并且没有死,所以我知道处理程序被正确调用。只是出于某种原因,使用请求文件对话框现在会杀死程序,而以前不会。
我注意到其他人说在请求文件对话框行之前和之后使用“.withdraw()”和“.update()”代码行,但每当我尝试这个时,窗口就会消失
from tkinter import *
from tkinter import filedialog # may be redundant with above line
window = Tk()
window.title('Welcome')
window.geomtry('500x300')
filename = ''
def filebrowse():
global filename
filename = filedialog.askopenfilename()
btn1 = Button(window, text = 'Browse for File', command = filebrowse)
btn.pack(fill = X, padx = 100,pady = 50)
window.mainloop()
我注意到其他人也有类似的无响应问题,但与我的不同,我可以。他们的解决方法对我不起作用。我想也许另一个程序的打开文件对话框可能会杀死它,但这也不起作用。
使用 Pycharm 和 Python 3.6
【问题讨论】:
-
您是否在没有 PyCharm 的情况下尝试过 - 就像任何普通脚本一样 -
python script.py?也许问题是 PyCharm。在问题信息中添加您使用的系统 - Windows、Linux、Mac。 -
代码在控制台中的 Linux Mint 19.2 / Python 3.7.4 上正常运行
python script.py -
AttributeError: '_tkinter.tkapp' object has no attribute 'geomtry' -
这是“几何”而不是“几何”@ReblochonMasque
-
当然是@SF12Study - OP 描述的任何事情都不会发生在发布的代码中的拼写错误!
标签: python user-interface tkinter file-io