python - 关闭当前文件/ View /显示而不保存或被要求这样做

标签 python gimp gimpfu python-fu

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

如何在不询问我是否要保存的情况下关闭此文件(这也是当前 View /显示)。

我需要注册函数来给我“当前显示”,比如 PF_Display ...(比如图像和可绘制对象)

然后我会去使用:

pdb.gimp_display_delete(显示)

如何获得与按“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:

这太基础了,我已经用谷歌搜索了很多,没有任何帮助,我失败了...

最佳答案

理论上,您不能这样做,因为通过设计可以防止 Scheme 或 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 创建一个 Display,并且 Gimp 仅在 id 与 gimp.Display 匹配时才返回 gimp.Display。使用上述代码的脚本的工作方式是,Gimp 中一次只有一个图像处于事件状态。对于多个图像,它变得有风险,因为您无法检查哪个显示器与哪个图像匹配。然而,通常显示的 ID 是图像 ID 之前的 ID,因此您可以这样做:

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

但是,没有保证,当然我不认识你,我们从未见过面,StackOverflow 也不存在......

关于python - 关闭当前文件/ View /显示而不保存或被要求这样做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42026126/

相关文章:

python - 从外部模块调用 gimp-fu 函数

python - 在 Gimp 中使用 python 脚本打开文件,如"file"->“打开”

python - 将多个输入 CSV 文件中的数据以列格式写入单个 CSV

python - 从 Python 中的相对路径导入 : strange behavior

android - LibGDX抗锯齿使边缘变灰

c++ - 将 C 源图像转储转换为原始图像

html - SVG : I need an SVG file that reads 'TEST' and auto-expands 100%

png - 如何在单个 XCF 图像中将多个 PNG 图像组合为图层?

python - 如何将媒体下载到 Telethon 上的特定路径

Python - 使用 pcolormesh 和 basemap 绘图