Gimp python-fu ,打开目录选择对话框

Gimp python-fu , open a directory selection dialog

我希望脚本的用户能够select 一个目录来做“东西”。不打开 JPG 或保存 XCF。我只需要一个目录,因为我的脚本会做一些事情,包括读取多个文件,并保存多个转换。

我应该可以使用

import Tkinter, tkFileDialog
root = Tkinter.Tk()

但是 gimp 2.10.24 有一个...自定义...安装生命周期结束的 python 2.7,我得到了错误 This probably means that Tcl wasn't installed properly.

那么 gimp 中是否内置了类似“pdb.open_directory”的内容? gimp 附带的其他 python 库又如何呢?如果我能让 Tkinter 在 gimp 中工作,我也会很满意,但这似乎更难。

如果您为 Python-fu 使用自动生成的参数对话框,那么只需使用 PF_DIRNAME 类型的参数即可。例如

register(
    'export-tiles',
    "Export tiles","Export tiles",author,author,year,"Export tiles...",
    '*',
    [
        (PF_IMAGE,      'image',        'Input image', None),
        (PF_DIRNAME,    'directory',    'Directory',   '.'),
        (PF_STRING,     'namePattern',  'Tile name',   '{imageName}-{column1:02d}-{row1:02d}.png'),
        (PF_SPINNER,    'rows',         'Rows',        10, (1,1000,1)),
        (PF_SPINNER,    'columns',      'Columns',     10, (1,1000,1))
    ],
    [],
    exportTiles,
    menu="<Image>/File/"
)

会引发这样的对话:

其中 Directory 按钮打开目录选择器,函数定义为:

def exportTiles(image,directory,namePattern,rows,columns):

会自动接收一个gimp.Image对象在image(调用脚本时的活动图像),一个目录作为python字符串('/tmp')在directorynamePattern 中的名称模式(作为 python 字符串)以及 python 浮动的行和列。