Закройте текущий файл / просмотр / отображение, не сохраняя его или не попросив об этом

Я открыл xcf файл "BY HAND" в Gimp.

Как я могу закрыть этот файл (это также текущее представление / отображение), не спрашивая меня, хочу ли я сохранить его.

Мне нужна функция регистрации, чтобы дать мне "текущий дисплей" что-то вроде 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:

Это так просто, я уже много гуглил, мне ничего не помогло, я провалился...

1 ответ

Решение

Теоретически, вы не можете этого сделать, потому что по замыслу API-интерфейсы Scheme или Python не могут вмешиваться в пользовательский интерфейс. При этом у меня есть скрипт, который делает это:

    # 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)

По сути, он пытается создать Display, используя несколько идентификаторов, и Gimp возвращает gimp.Display, только если id совпадает с gimp.Display. Как работает скрипт, использующий приведенный выше код, в Gimp одновременно работает только одно изображение. С несколькими изображениями это становится рискованным, потому что вы не можете проверить, какой дисплей идет с каким изображением. Однако, похоже, что очень часто идентификатором дисплея является идентификатор, предшествующий изображению, так что вы можете просто сделать:

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

Но никаких гарантий, и, конечно, я вас не знаю, мы никогда не встречались, и Stackru не существует...

Другие вопросы по тегам