PyQt6嵌入Matplotlib带blitting的Cursor时的偏移与样式异常问题
PyQt6结合Matplotlib使用blitting模式的Cursor时,坐标轴偏移、边缘变色问题
我正在开发一款基于Python的光谱数据处理软件,采用PyQt6构建GUI、Matplotlib绘制数据。为简化数据选择,给坐标轴添加了Matplotlib的Cursor组件,并启用blitting模式以提升性能。
基础功能正常:鼠标移入坐标轴时光标显示,移出时隐藏,但鼠标移入时整个坐标轴内容会轻微偏移,有时图形边缘颜色还会从黑色变为灰色。
最小复现代码
# Import packages from PyQt6.QtWidgets import QMainWindow, QApplication, QWidget, QVBoxLayout from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.widgets import Cursor from matplotlib.figure import Figure import numpy as np # Main window class MainWindow(QMainWindow): def __init__(self): # Initialize QMainWindow super().__init__() # Get MplWidget self.mpl_widget = MplWidget() # Set MplWidget as central widget self.setCentralWidget(self.mpl_widget) # Create axes self.ax = self.mpl_widget.canvas.figure.add_subplot(111) # Reference Cursor self.cursor = Cursor(self.ax, useblit=True) # Plot some random stuff x, y = np.random.rand(100), np.random.rand(100) self.ax.scatter(x, y) # Show app self.show() # MplCanvas class MplWidget(QWidget): def __init__(self, parent=None): # Initialize QWidget super().__init__(parent) # Create canvas self.canvas = FigureCanvas(Figure()) # Set constrained layout self.canvas.figure.set_constrained_layout(True) # Create layout layout = QVBoxLayout() # Add canvas layout.addWidget(self.canvas) # Set layout self.setLayout(layout) # Initialize app app = QApplication([]) UI = MainWindow() app.exec()
现象演示
最小示例现象:
实际应用现象:
请问如何解决该问题?
内容的提问来源于stack exchange,提问作者pypy22
相关产品推荐
相关产品推荐

