Python 关闭当前文件/视图/显示,但不保存它,或被要求这样做

Python 关闭当前文件/视图/显示,但不保存它,或被要求这样做,python,gimp,gimpfu,python-fu,Python,Gimp,Gimpfu,Python Fu,我已经在Gimp中“手动”打开了一个xcf文件 如何关闭此文件(也是当前视图/显示),而不询问是否要保存它 我需要寄存器功能来给我“当前显示”类似于PF_显示的东西。。。(如图像和可绘制) 然后我会去使用: pdb.gimp\u显示\u删除(显示) 如何获得与按“CTRL+W”或按“x”按钮相同的结果 到目前为止,对我来说没有任何效果: 1: gimp.pdb.gimp_image_delete(image) 2: display = pdb.gimp_display_new(image)

我已经在Gimp中“手动”打开了一个xcf文件

如何关闭此文件(也是当前视图/显示),而不询问是否要保存它

我需要寄存器功能来给我“当前显示”类似于PF_显示的东西。。。(如图像和可绘制)

然后我会去使用:

pdb.gimp\u显示\u删除(显示)

如何获得与按“CTRL+W”或按“x”按钮相同的结果

到目前为止,对我来说没有任何效果:

1: gimp.pdb.gimp_image_delete(image)

2: display = pdb.gimp_display_new(image)
   pdb.gimp_display_delete(display)

3: use of image.clean_all() in combination with 1: and 2:

这是非常基本的,我已经在谷歌上搜索了很多,没有任何帮助,我失败了…

理论上,你不能,因为通过设计方案或Python API可以防止干扰UI。也就是说,我有一个脚本:

    # delete image display and image
    for displayID in range(1,image.ID+50):
        display=gimp._id2display(displayID)
        if isinstance(display,gimp.Display):
            #print 'Image: %d; display %d' % (image.ID,displayID)
            break
    if not display:
        raise Exception('Display not found')            
    gimp.delete(display)
基本上,它尝试使用一组id创建一个显示,只有当id与Gimp.Display匹配时,Gimp才会返回一个Gimp.Display。按照使用上述代码的脚本的工作方式,Gimp中一次只有一个映像处于活动状态。使用多个图像会有风险,因为您无法检查哪个显示与哪个图像匹配。但是,通常情况下,显示器的id是图像id之前的id,因此您可以执行以下操作:

display=gimp._id2display(image.ID-1)
gimp.delete(display)

但是,没有保修,当然我不认识您,我们从未见过面,而且StackOverflow也不存在……

此解决方案完全符合我的要求。每一次!!我正在2.10.8上测试“gimp.delete(gimp.\u id2display(image.ID)),它每次都能工作。注:不需要(id-1)。