gpt4 book ai didi

python - 如何在 PyQt5 应用程序中更改 Matplotlib NavigationToolbar 的默认文件名?

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:44 34 4
gpt4 key购买 nike

我正在用 Python 3.5 和 PyQT 5 编写一个应用程序。在这个应用程序中,我有一个嵌入式 matplotlib Canvas 和一个嵌入式 matplotlib NavigationToolbar。该应用程序测量一些数据,然后绘制它们。用户有时想要导出绘图并将其保存到某处的“.png”文件中,然后测量新的东西。

为此,我一直在使用 NavigationToolbar 上的“floppy”/“save”图标,效果很好。但是,当我单击它时,它会在程序的根文件夹(或上次打开的文件夹)中打开一个对话框,并将保存图像的名称预填为“image.png”。

我想将这个预填充的默认名称更改为我的程序自定义的名称,例如“measurement_7453243.png”或“2017_01_16_measurement.png”。有什么方法可以让我这样做吗?

想法 #1:我发现的是使用 matplotlib.rcParams['savefig.directory'] 的选项,并使用它来设置应该打开对话框的目录 - 但不是文件名。我似乎找不到可以更改默认文件名的“savefig.XXXX”属性。

想法 #2:我可以在 NavigationToolbar 之外的我的应用程序中创建一个自定义按钮,这将使用 Qt 运行一个自定义文件保存对话框,然后使用 savefig() 来保存图形。但是,如果已经有一个漂亮的按钮几乎可以满足我的要求,为什么还要这样做呢?

我们将不胜感激任何提示和想法,以及“这是不可能完成的”和适当的来源。

最佳答案

不确定你是否总是可以这样做,但在我的例子中,图形实例有一个 canvas 属性,我可以将其 monkeypatch 为 Goyo建议。

import matplotlib.pyplot as plt
f = plt.figure()
c = f.canvas
my_adventurous_filename = 'figure-III' # irony
c.get_default_filename = lambda : '%s.%s' % (my_adventurous_filename,
c.get_default_filetype())
plt.show()

关于python - 如何在 PyQt5 应用程序中更改 Matplotlib NavigationToolbar 的默认文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41680007/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com