无法在 TigerJython 中使用 pickAFile
Unable to use pickAFile in TigerJython
在 JES 中,我可以使用:
file=pickAFile()
然而,在 TigerJython 中,我收到以下错误
NameError: name 'pickAFile' is not defined
我做错了什么?
你没有做错任何事。问题是 pickAFile()
不是 Python 中的标准函数。它实际上是 JES 为了方便而添加的一个功能,但您可能不会在任何其他环境中找到它。
由于 TigerJython 和 JES 都是基于 Jython 的,您可以轻松地自己编写一个 pickAFile()
函数使用 Java 的 Swing。这是一个可能的简单实现(JES 中的 pickAFile()
可能有点复杂,但这应该可以帮助您入门):
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 中。
P.S。很抱歉回答这么晚,我最近才加入 SO,并不知道你的问题(我是 TigerJython 的原作者之一)。
在 JES 中,我可以使用:
file=pickAFile()
然而,在 TigerJython 中,我收到以下错误
NameError: name 'pickAFile' is not defined
我做错了什么?
你没有做错任何事。问题是 pickAFile()
不是 Python 中的标准函数。它实际上是 JES 为了方便而添加的一个功能,但您可能不会在任何其他环境中找到它。
由于 TigerJython 和 JES 都是基于 Jython 的,您可以轻松地自己编写一个 pickAFile()
函数使用 Java 的 Swing。这是一个可能的简单实现(JES 中的 pickAFile()
可能有点复杂,但这应该可以帮助您入门):
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 中。
P.S。很抱歉回答这么晚,我最近才加入 SO,并不知道你的问题(我是 TigerJython 的原作者之一)。