来自Tk的常见常规python文件对话框在Enthought Canopy下崩溃。
为Canopy用户获取文件对话框的推荐方法是什么?
以下代码适用于常规python:
import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
在Canopy下运行时的错误消息是:
2014-12-30 11:22:52.809 Python[51980:d0f] -[QNSApplication _setup:]: unrecognized selector sent to instance 0x108657b70
答案 0 :(得分:1)
对我来说,最简单的选择是使用Qt。
fname, _ = QtGui.QFileDialog.getOpenFileName(self.view, 'Open file','.')
答案 1 :(得分:1)
取决于您在程序中使用的GUI后端。如果您的程序也在其他地方使用TK,请按照Warren提供的链接中的说明进行操作。如果你只需要这个对话框(和类似的),Chuck的建议可能是最简单的(特别是因为Qt是Canopy使用的IPython内核的默认后端)。我不是Qt大师,但我认为你可以简化Chuck的建议:
from PySide import QtGui
fname, _ = QtGui.QFileDialog.getOpenFileName(None, 'Choose file','.')
请参阅http://srinikom.github.io/pyside-docs/PySide/QtGui/QFileDialog.html