如何在 PyQt6 中将matplot.show()新创建的窗口显示在主界面上
时间: 2024-12-04 13:26:01 浏览: 31
在PyQt6中,如果你想要将matplotlib创建的窗口作为GUI的一部分,并将其显示在主界面窗口上,你需要结合使用matplotlib的`FigureCanvasQTAgg`类和PyQt6的QMainWindow。以下是一个简单的步骤:
1. 首先,在你的PyQt6应用中导入必要的模块:
```python
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow
from matplotlib.backends.backend_qt6agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.pyplot as plt
```
2. 创建一个`FigureCanvas`实例,这将是matplotlib图的容器:
```python
fig = plt.figure()
canvas = FigureCanvas(fig)
```
3. 将`canvas`添加到`QMainWindow`的一个布局中,例如` QVBoxLayout`:
```python
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.setCentralWidget(canvas)
self.setLayout(layout)
# 然后创建并显示主窗口
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
```
4. 最后,运行应用程序:
```python
sys.exit(app.exec())
```
这样,当你调用`plt.show()`时,实际上是在后台创建了一个新的窗口,并通过`main_window.show()`显示在了你的PyQt6主窗口中。
阅读全文