PyQtGraph 图在 Qt MainWindow 上显示不正确

Posted

技术标签:

【中文标题】PyQtGraph 图在 Qt MainWindow 上显示不正确【英文标题】:PyQtGraph plot incorrectly displayed on Qt MainWindow 【发布时间】:2016-12-07 00:59:27 【问题描述】:

所以我试图让 PyQtGraph 在我正在开发的 GUI 中绘制图形(您可以在此处查看 https://github.com/allg18/MuonAquisitionTool,我使用的是 Python3 和 PyQt4)。 但是,当我将 plotwidget 添加到 MainWindow 中的 groupbox 时,它总是很小。 plotgraph 没有扩展到占据整个 groupbox。

class MainWindow2(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow2, self).__init__()

        # Set up the user interface from Designer.

        self.setupUi(self)

        """Booting up the Graphics"""
        self.preview_plot = pg.PlotWidget(self.groupBox_2)
        self.preview_plot.adjustSize()
        self.data1 = numpy.random.normal(size=300)
        self.curve1 = self.preview_plot.plot(self.data1)

其中 groupBox_2 是我想把它放在主窗口中的地方。 如您所见,我还尝试在那里放置“adjust_size”。我也试过了:

self.preview_plot.resize(500, 500)

这确实有效,这是我获得与图片中的尺寸不同的唯一方法

更新: 我尝试添加以下行,但这并没有再次改变图形小部件的大小...

self.graph.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)

【问题讨论】:

【参考方案1】:

不要尝试自己定位小部件,这很难且容易出错。 Qt 有一个布局机制来为你做这件事。你可以阅读它here

我无法修复您的示例,因为它不完整,我没有 QMainWindowUi_MainWindow 类(将来请创建 MCVE)。但是,可能有一些组框布局,您可以使用 addWidget 添加绘图小部件。

【讨论】:

你自己定位小部件是什么意思?我只是用“self.preview_plot = pg.PlotWidget(self.groupBox_2)”设置了父小部件......然后我尝试了不同的命令,但唯一对图像大小做任何事情的是我所做的“调整大小”。然而,“resize(self.preview_plot.sizeHint())”也没有做任何事情。 我的意思是不要做任何明确的调整大小或定位。只需使用布局机制。

以上是关于PyQtGraph 图在 Qt MainWindow 上显示不正确的主要内容,如果未能解决你的问题,请参考以下文章

从 pyqtgraph.Qt 导入 QtGui 为 *

在 Qt 中嵌入 PyQtGraph 而不生成新窗口

PySide / PyQtGraph 访问主 Qt 事件线程

使用 PySide2 在 Qt-Designer 中嵌入 PyQtGraph

带有 Qt Designer 的 pyqtgraph:如何将 PlotItems 添加到 GraphicsLayoutWidget

pyqtgraph 主窗体内的绘图(qt 设计器)