在QGroupBox中显示plot绘制的图片
时间: 2024-05-16 14:14:43 浏览: 87
你可以使用Qt中的QGraphicsView和QGraphicsScene来显示plot绘制的图片。首先,你需要将plot绘制的图片转换为QPixmap格式。然后,创建一个QGraphicsScene对象,并将QPixmap添加到场景中。最后,将场景添加到QGraphicsView对象中,并将QGraphicsView添加到QGroupBox中。示例代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QMainWindow, QGroupBox, QGraphicsView, QGraphicsScene, QVBoxLayout, QApplication
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个QGroupBox
self.groupBox = QGroupBox("Plot")
# 创建一个QGraphicsView和QGraphicsScene
self.view = QGraphicsView()
self.scene = QGraphicsScene()
# 绘制plot图像
x = np.linspace(-10, 10, 100)
y = np.sin(x)
fig = plt.figure(figsize=(5, 4), dpi=100)
plt.plot(x, y)
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.tight_layout()
plt.savefig('plot.png')
# 将plot图像转换为QPixmap格式
self.pixmap = QPixmap('plot.png')
# 将QPixmap添加到QGraphicsScene中
self.scene.addPixmap(self.pixmap)
# 将QGraphicsScene添加到QGraphicsView中
self.view.setScene(self.scene)
# 将QGraphicsView添加到QGroupBox中
layout = QVBoxLayout()
layout.addWidget(self.view)
self.groupBox.setLayout(layout)
self.setCentralWidget(self.groupBox)
if __name__ == '__main__':
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
这段代码会创建一个包含plot图像的QGroupBox,并将其显示在应用程序的主窗口中。
阅读全文