首页 > 解决方案 > 无法在 TigerJython 中使用 pickAFile

问题描述

在 JES 中,我可以使用:

file=pickAFile() 

但是,在 TigerJython 中,我收到以下错误

NameError: name 'pickAFile' is not defined

我在这里做错了什么?

标签: jythonjes

解决方案


你根本没有做错任何事。问题是这pickAFile()不是 Python 中的标准函数。它实际上是JES为方便起见而添加的一个功能,但您可能在任何其他环境中都找不到它。

由于TigerJythonJES都基于 Jython,您可以轻松地pickAFile()自己编写一个使用 Java 的 Swing 的函数。这是一个可能的简单实现(pickAFile()在 JES 中找到的可能有点复杂,但这应该可以帮助您入门):

def pickAFile():
    from javax.swing import JFileChooser
    fc = JFileChooser()
    retVal = fc.showOpenDialog(None)
    if retVal == JFileChooser.APPROVE_OPTION:
        return fc.getSelectedFile()
    else:
        return None

鉴于它肯定是一个有用的功能,我们可能不得不考虑将它包含在我们的下一次 TigerJython 更新中。

PS我很抱歉这么晚才回答,我最近才加入SO并且不知道你的问题(我是TigerJython的原作者之一)。


推荐阅读