首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Tkinter/Python中打开的文件对话框窗口在用户选择文件后关闭非常慢的原因是什么?

在Tkinter/Python中打开的文件对话框窗口在用户选择文件后关闭非常慢的原因是什么?
EN

Stack Overflow用户
提问于 2014-02-19 06:08:56
回答 2查看 8.1K关注 0票数 13

我可以在我的程序中执行以下操作,以获得一个简单的打开文件对话框,并打印选定的文件路径。不幸的是,当用户选择文件时,它不会立即消失,并且停留超过5分钟。在执行更多python代码之前,如何在做出选择后立即使窗口消失?在Tkinter代码之后,我确实尝试使用OpenCV导入一些视频,我认为这可能会导致速度变慢。我的OpenCV代码确实可以正确执行,我不认为这本身就有问题(例如,某些交互导致了错误&可能是在Tkinter结束其图形用户界面对话框之前启动了一些密集的进程)。

代码语言:javascript
复制
import Tkinter as Tk
import cv2
from tkFileDialog import askopenfilename
root = Tk.Tk()
root.withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)

cap = cv2.VideoCapture('video.mp4')   # this works just fine 

如果有用的话,我正在使用Python 2.7和Mac 10.9。

编辑:这似乎对所有人来说都不是问题,但对我来说是问题,所以我改变了问题,也包括调试问题。在GUI中关闭Tkinter打开文件对话框窗口之前,我不希望执行任何操作。似乎我的程序中的后续步骤(打开的cv视频导入)可能会以某种方式导致Tkinter减慢速度,所以我想确保在启动任何新进程之前它确实关闭了。同样,Tkinter窗口实际上在5分钟后关闭...

EN

回答 2

Stack Overflow用户

发布于 2014-09-09 08:11:54

我在使用Tkinter对话框时遇到了一些问题。和你一样,在我选择了一个文件后,对话框就一直停在那里。我没有试着离开它很长时间,它可能在5分钟后就消失了,就像你说的那样。经过大量的随机实验后,我发现在之前调用root.update() 似乎可以解决这个问题。

作为参考,这是我正在测试的代码:

代码语言:javascript
复制
import sys
from tkinter import *
from tkinter import filedialog

#instantiate a Tk window
root = Tk()

#set the title of the window
root.title('Tk test')

# I don't know, what this does, but it fixes askopenfilename if I use it.
root.update()

print(filedialog.askopenfilename(title='dialogue? surely.'))
票数 17
EN

Stack Overflow用户

发布于 2015-07-21 14:46:43

这正是我遇到的问题--有时文件对话框会在一段时间后消失,有时则不会。但它似乎总是会阻塞较晚的状态窗口。添加root.update()可以立即解决这两个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21866537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档