首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GIMP python-fu,如何获取最后保存的映像的目录。

GIMP python-fu,如何获取最后保存的映像的目录。
EN

Stack Overflow用户
提问于 2022-11-28 15:13:42
回答 1查看 21关注 0票数 0

我正在尝试创建一些GIMP插件,这里有gtk FileDialog:

代码语言:javascript
复制
chooser = gtk.FileChooserDialog(title="Save as...",
                                action=gtk.FILE_CHOOSER_ACTION_SAVE,
                                buttons=(gtk.STOCK_SAVE,
                                         gtk.RESPONSE_OK,
                                         gtk.STOCK_CANCEL,
                                         gtk.RESPONSE_CANCEL))
chooser.set_do_overwrite_confirmation(True)

我希望将FileChoserDialog的当前文件夹设置为最后使用的目录,如下所示

代码语言:javascript
复制
chooser.set_current_folder(">>>>>HERE I NEED THE DIRECTORY OF THE LAST SAVED IMAGE<<<<<<<<")

我怎么能这么做?

我想出的唯一办法是将文件名保存到image.filename中,然后清除它。

代码语言:javascript
复制
chooser.set_current_folder(choose_set_dir())
response = chooser.run()
filename = chooser.get_filename()
chooser.destroy()
if response == gtk.RESPONSE_OK
    <...>
    pdb.file_jpeg_save(image, drawable, filename, filename, 0.9, 0, 0, 0, "", 2, 1, 0, 0)
    clear_filenames()
    image.filename = filename
    image.clean_all()


def choose_set_dir():
    for img in gimp.image_list():
        if img.filename:
            return path.dirname(img.filename)
    
    return path.expanduser("~/Desktop")
    
def clear_filenames():
    for img in gimp.image_list():
        if img.filename:
            img.filename = ""

但这是一种黑客行为,我想把事情做好。

EN

回答 1

Stack Overflow用户

发布于 2022-11-28 18:33:25

也许不是个好主意..。FileChoose医生说:

注意到文件选择器的旧版本建议在各种情况下使用gtk_file_chooser_set_current_folder(),目的是让应用程序建议一个合理的默认文件夹。这不再被认为是一个好策略,因为现在文件选择器能够自己提出好的建议。通常,只有在适当使用gtk_file_chooser_set_filename()时,即当您执行“另存为”命令时,并且在某个地方已经保存了一个文件时,您才应该使文件选择器显示特定的文件夹。

此外,文件选择器对话框有一个“最近使用”的书签,这样用户就可以快速找到他们最近使用的目录。

如果这还不够:

  • 您可以迭代图像列表,并获取所有加载图像的文件名,检查时间戳,并尝试推断最后保存的图像,但您仍然需要在当前的GIMP.
  • 中打开这些图像,您可以检查文件~/.local/share/recently-used.xbel,这是应用程序共享最近使用的文件的信息的地方(其中大多数应用程序都是Gimp,但不是所有)。最后的文件是最近的文件。

还有几个提示:

  • gimp.user_directory(n) (n in 0.8)返回一些目录的路径:桌面、文档、Pictures....
  • adding a命名的arg run_mode=RUN_INTERACTIVEfile_jpeg_save使其引出JPEG选项对话框,因此您不需要硬编码选项,您可以在以下调用中使用run_mode=RUN_WITH_LAST_VALS来重用相同的设置。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74602673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档