【问题标题】:Drawing in a matplotlib widget in QtDesigner在 QtDesigner 中的 matplotlib 小部件中绘图
【发布时间】:2016-07-13 09:21:38
【问题描述】:

我在 QtDesigner 中创建了这个 QDialog:

我想知道如何在我放在那里的这个 Matplotlib 小部件中绘制一些东西。我的意思是,如果我在没有 Qt Designer 的情况下编写一些代码来创建 matplotlib 图形,我可以编写如下内容:

self.figure_canvas = FigureCanvas(Figure())

self.axes = self.figure_canvas.figure.add_subplot(111)

x = np.arange(0,5,0.5)
y = np.sin(x)

然后画做:

ax.plot(x,y)self.axes.plot(x,y)

我如何访问这个小部件来绘制一些东西?希望你能帮助我。

【问题讨论】:

  • 您需要将您的FigureCanvas 添加到基于您的屏幕截图的小部件中,该小部件应该可以在您的QMainWindow 类中作为self.matplotlibwidget 访问。然后你可以拨打self.matplotlibwidget.addWidget(self.figure_canvas)
  • 感谢您的回答。我之前尝试过这样做,但我收到一条错误消息matplotlibwidget object has no attribute addwidget
  • 哦,好吧,你已经有了这个小部件。抱歉误读了。您应该能够直接将小部件用于轴。 self.matplotlibwidget.axes.plot(x,y)
  • 是的,它有效!!太感谢了。现在我对 Qt Designer 有了更多的了解。再次感谢您。
  • 太棒了。我已将其添加为下面的正式解决方案

标签: python qt numpy matplotlib


【解决方案1】:

根据您提供的屏幕截图,MatplotlibWidget 似乎应该可以作为 self.matplotlibwidget 从您的 QMainWindow 类中访问。这是因为对象检查器的“对象”列中列出的值。

您可以直接使用此对象将绘图添加到您的 GUI。

self.matplotlibwidget.axes.plot(x, y)

【讨论】:

    猜你喜欢
    • 2011-10-08
    • 2013-03-12
    • 2013-08-17
    • 2019-09-27
    • 2014-03-12
    • 2018-06-14
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多