Закройте текущий файл / просмотр / отображение, не сохраняя его или не попросив об этом
Я открыл 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 не существует...