如何在gimp python插件中使用函数指定默认值?

时间:2013-05-28 17:15:48

标签: gimp python-fu

我试图让gimp在“另存为”插件中使用合理的默认路径,为此我需要能够使用函数的返回值指定默认值(我相信)。

目前,我的代码类似于:

def do_the_foo(image, __unused_drawable, directory):
    # ... do something

register(
    "python_fu_something",
    "Blah de blah",
    "Blah de blah",
    "Blah de blah",
    "Blah de blah",
    "2013",
    "<Image>/File/Save as blah...",
    "*",
    [
        (PF_DIRNAME, "directory", "Directory to save files to", "/")
    ],
    [],
    do_the_foo
)

当然,这意味着对话框弹出“/”作为默认目录。那不太理想。我希望它从当前加载的图像的路径开始(如果已知),然后如果当前加载的图像没有路径(未保存,无论如何),则回退到“/”。

但要到达那里我需要知道如何用函数替换“/”。我已经尝试过这样做(创建一个函数,在PF_DIRNAME行中引用它)但没有欢乐(也没有错误信息)。

3 个答案:

答案 0 :(得分:0)

我没有测试它,但也许......

import os
[...]

(PF_DIRNAME, "directory", "Directory to save files to", os.curdir)

或类似的东西:

(PF_DIRNAME, "directory", "Directory to save files to", os.path.realpath(os.curdir))        

答案 1 :(得分:0)

确保通过调用()来传递函数的结果,而不是仅传递函数本身(这是省略括号时发生的情况)。例如,替换示例中的第14行:

( PF_DIRNAME, "directory", "Directory to save files to", get_directory() )

将评估函数get_directory,它将返回一个字符串。

答案 2 :(得分:0)

(PF_DIRNAME, "path", "Save", os.getcwd())