需要在Enthought Canopy中运行的代码的文件对话框

时间:2014-12-30 19:32:28

标签: python enthought canopy

来自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

2 个答案:

答案 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