【问题标题】:PyQt4 Can I preview a plot before closing window?PyQt4 我可以在关闭窗口之前预览绘图吗?
【发布时间】:2016-07-02 12:56:00
【问题描述】:

我的程序要求各种输入并为用户保存相应的图。我希望能够有一个“预览”选项,如果他们按下“预览”,它会实现这些选项,并且他们可以在点击生成他们请求的 .jpg 的“完成”按钮之前看到绘图。理想情况下,我希望他们能够点击“预览”,对输入进行调整,然后再次点击“预览”,看看是否是他们想要的样子。

我添加了一个“预览”按钮,但它似乎不起作用 - 然后我关闭了主窗口,它确实显示了情节。

这是我的“预览”和“完成”按钮的代码:

def preview(self):
    self.final = False
    self.id = str(self.identifier_ask.text())
    self.limits = [float(self.vel_low_ask.text()), float(self.vel_high_ask.text())]
    if self.flip_bool_ask.isChecked():
        self.flip = True
    else:
        self.flip = False


def finish_input_click(self):
    self.final = True
    self.id = str(self.identifier_ask.text())
    self.limits = [float(self.vel_low_ask.text()), float(self.vel_high_ask.text())]
    if self.flip_bool_ask.isChecked():
        self.flip = True
    else:
        self.flip = False

    self.close()

这是我的绘图功能中的代码:

if cw.final:
    figure_path = pathname + 'velocity ' + cw.id + '.jpg'
    fig.savefig(figure_path, dpi = 200)
    plt.close()
else:
    plt.show()

有没有一种方法可以完成我想要的,而无需在编译的窗口类中基本上复制我的绘图功能?

【问题讨论】:

    标签: python python-2.7 matplotlib pyqt4


    【解决方案1】:

    在您的“预览”代码中,您并没有将情节调用到视图中(似乎),只是给您的班级一个标志。所以我猜当你关闭你的窗口时你会调用 plot 函数并且标志说它应该给出一个情节。

    由于您使用的是 matplotlib,我建议您制作第二个绘图实例,这样一旦用户关闭它,您就不会丢失之前设置的信息。因此,在预览功能中,您还应该制作一个绘图(就像您在软件中所做的一样)。

    【讨论】:

    • 在关闭窗口之前如何实现绘图?
    • @mauve 你现在怎么样了?假设您正在某处保存绘图的参数(标记、线条样式、x、y 等)。从此,您可以根据要求使用图形 examples 构建 matplotlib 图。如果您仍有疑问,请编辑您的帖子以显示您的情节代码。
    • 我的问题是从活动窗口调用函数......现在,当我点击“预览”时没有任何反应......*直到*我关闭 QMainWindow。然后情节显示得很好。我的问题是关于如何让它显示当我点击预览按钮时而不是在那个窗口关闭之后。
    • 通过将 plt.show() 放入“预览”函数中。正如我所说,您没有在帖子中调用的函数中调用任何与绘图相关的内容。
    • 所以我不得不把绘图的东西移到QMainWindow()类里面,没有别的办法。
    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多