使用jython单击按钮后,从getDirectory分配值

2024-04-28 22:32:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用jython编写一个简单的GUI来向Imagej插件输入一些数据。在

单击两个相应的按钮后,要输入的一些数据是两个目录(输入和输出)。我的问题是我不知道如何将getDirectory获得的特定值赋给变量。如果我将变量“out”(在MyListener类中)设置为global,我可以使用它,但是这样我只能使用它一次,因为第二次它将删除第一个目录。在

问题是如何让类“MyListener”返回所选目录并将其设置为特定的变量。在

通用对话框代码如下:

from ij.gui import GenericDialog, DialogListener
from ij.io import DirectoryChooser
from java.awt import Button
from java.awt.event import ActionListener, ActionEvent
from ij.plugin.frame.Editor import actionPerformed


class MyListener (ActionListener):
    def actionPerformed(self, event):
        out = DirectoryChooser("Choose!!").getDirectory()
        return out

def getOptions():

    bt01 = Button("Get Directory")
    bt02 = Button("Get Directory")

    bt01.addActionListener(MyListener())
    bt02.addActionListener(MyListener())

    gd = GenericDialog("Directories")
    gd.addStringField("FA Name", "File name")
    gd.add(bt01)
    gd.add(bt02)
    gd.showDialog()  

    if gd.wasCanceled():  
        print "User canceled. Exiting...."  
        return

    return bt01, bt02

options = getOptions()  
if options is not None:  
    dir01, dir02 = options 

    print dir01, dir02'

谢谢你!!在


Tags: 数据fromimport目录returnbuttonoutoptions
1条回答
网友
1楼 · 发布于 2024-04-28 22:32:28

^{}类中使用getDirectory()助手函数:

from ij import IJ
from ij.gui import GenericDialog

def getOptions():

    dir1 = IJ.getDirectory("Choose first directory")
    dir2 = IJ.getDirectory("Choose second directory")

    gd = GenericDialog("Directories")
    gd.addStringField("FA Name", "File name")
    gd.showDialog()  

    if gd.wasCanceled():  
        print "User canceled. Exiting...."  
        return
    fileName = gd.getNextString()
    return dir1, dir2, fileName

options = getOptions() 
if options is not None:
    dir01, dir02, name = options 

    print dir01, dir02, name

或者,如果您希望避免对话框的连续弹出,并且希望使用一个包含所有选项的对话框,那么您可以在Fiji中使用^{}。此类提供一个addDirectoryField(String label, String defaultPath)方法。在

相关问题 更多 >