我正在尝试创建一些GIMP插件,这里有gtk FileDialog:
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的当前文件夹设置为最后使用的目录,如下所示
chooser.set_current_folder(">>>>>HERE I NEED THE DIRECTORY OF THE LAST SAVED IMAGE<<<<<<<<")我怎么能这么做?
我想出的唯一办法是将文件名保存到image.filename中,然后清除它。
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 = ""但这是一种黑客行为,我想把事情做好。
发布于 2022-11-28 18:33:25
也许不是个好主意..。FileChoose医生说:
注意到文件选择器的旧版本建议在各种情况下使用gtk_file_chooser_set_current_folder(),目的是让应用程序建议一个合理的默认文件夹。这不再被认为是一个好策略,因为现在文件选择器能够自己提出好的建议。通常,只有在适当使用gtk_file_chooser_set_filename()时,即当您执行“另存为”命令时,并且在某个地方已经保存了一个文件时,您才应该使文件选择器显示特定的文件夹。
此外,文件选择器对话框有一个“最近使用”的书签,这样用户就可以快速找到他们最近使用的目录。
如果这还不够:
~/.local/share/recently-used.xbel,这是应用程序共享最近使用的文件的信息的地方(其中大多数应用程序都是Gimp,但不是所有)。最后的文件是最近的文件。还有几个提示:
gimp.user_directory(n) (n in 0.8)返回一些目录的路径:桌面、文档、Pictures....run_mode=RUN_INTERACTIVE到file_jpeg_save使其引出JPEG选项对话框,因此您不需要硬编码选项,您可以在以下调用中使用run_mode=RUN_WITH_LAST_VALS来重用相同的设置。https://stackoverflow.com/questions/74602673
复制相似问题