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
我无法修复您的示例,因为它不完整,我没有 QMainWindow
和 Ui_MainWindow
类(将来请创建 MCVE)。但是,可能有一些组框布局,您可以使用 addWidget
添加绘图小部件。
【讨论】:
你自己定位小部件是什么意思?我只是用“self.preview_plot = pg.PlotWidget(self.groupBox_2)”设置了父小部件......然后我尝试了不同的命令,但唯一对图像大小做任何事情的是我所做的“调整大小”。然而,“resize(self.preview_plot.sizeHint())”也没有做任何事情。 我的意思是不要做任何明确的调整大小或定位。只需使用布局机制。以上是关于PyQtGraph 图在 Qt MainWindow 上显示不正确的主要内容,如果未能解决你的问题,请参考以下文章
PySide / PyQtGraph 访问主 Qt 事件线程
使用 PySide2 在 Qt-Designer 中嵌入 PyQtGraph
带有 Qt Designer 的 pyqtgraph:如何将 PlotItems 添加到 GraphicsLayoutWidget