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