pyside嵌入matplot画板并获取它在窗口中的位置
时间: 2024-05-05 15:20:13 浏览: 189
以下是一个示例代码,展示了如何在PySide中嵌入Matplotlib绘图板,并获取它在窗口中的位置:
```python
import sys
import matplotlib.pyplot as plt
from PySide2.QtWidgets import QApplication, QMainWindow, QSizePolicy, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建Matplotlib绘图板和画布
self.figure = plt.figure()
self.canvas = FigureCanvas(self.figure)
# 创建一个垂直布局,将画布添加到其中
layout = QVBoxLayout()
layout.addWidget(self.canvas)
# 设置主窗口的中心小部件为该垂直布局
widget = QWidget()
widget.setLayout(layout)
self.setCentralWidget(widget)
# 显示窗口
self.show()
def resizeEvent(self, event):
# 在窗口大小更改时调整画布大小和位置
super().resizeEvent(event)
self.canvas.setGeometry(self.centralWidget().geometry())
# 获取画布在窗口中的位置
pos = self.canvas.mapTo(self.centralWidget(), QPoint(0, 0))
print("Canvas position:", pos)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
```
该示例创建了一个继承自QMainWindow的主窗口,并在其中嵌入了一个Matplotlib绘图板。在`resizeEvent`方法中,它会调整画布的大小和位置,并获取画布在窗口中的位置。最后,通过运行`app.exec_()`启动应用程序的事件循环。
阅读全文
相关推荐
![py](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)