首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在鼠标单击时在FigureCanvasQTAgg上绘制圆圈

在鼠标单击时在FigureCanvasQTAgg上绘制圆圈,需要以下步骤:

  1. 首先,确保已经安装了相关的库和依赖项。这包括Python的matplotlib库以及Qt的PyQt库。
  2. 导入所需的库和模块:
代码语言:txt
复制
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt
  1. 创建一个自定义的Qt窗口类,并继承自QMainWindow类:
代码语言:txt
复制
class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
  1. 在窗口类的构造函数中,初始化Figure对象和绘图区域,并将其添加到窗口上:
代码语言:txt
复制
        self.figure = plt.figure()
        self.canvas = FigureCanvas(self.figure)
        self.setCentralWidget(self.canvas)
  1. 定义一个鼠标点击事件的处理函数,用于在鼠标单击时绘制圆圈。在该函数中,获取鼠标点击的坐标,然后调用matplotlib的绘图方法绘制圆圈:
代码语言:txt
复制
    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            x = event.pos().x()
            y = event.pos().y()
            self.draw_circle(x, y)

    def draw_circle(self, x, y):
        circle = plt.Circle((x, y), 10, color='r')
        self.figure.gca().add_artist(circle)
        self.canvas.draw()
  1. 在主函数中创建Qt应用程序对象,实例化自定义窗口类,并显示窗口:
代码语言:txt
复制
if __name__ == '__main__':
    app = QApplication([])
    window = MyWindow()
    window.show()
    app.exec_()

通过以上步骤,在鼠标单击时,将在FigureCanvasQTAgg上绘制一个红色圆圈。可以根据实际需求调整圆圈的大小、颜色和其他属性。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Xcelsius(水晶易表)系列6——统计图钻取功能

    今天跟大家分享的是水晶易表系列6——统计图的钻取功能。 统计图通过启用钻取功能之后,可以通过鼠标单击该图表的单一序列,使图表序列成为动态选择器,鼠标单击之后会将对应序列数据传递到一个定义好的单元格位置,而利用该单元格区域位置数据所创建的图表就可以接收到动态数据源,进而完成动态交互。 这种交互方式在前几篇的案例中均有讲解,第一篇中的标签式菜单通过通过设定数据源以及数据插入位置,某种程度上具有钻取功能(只是标签式菜单本事就是作为选择器,并不展示任何数据信息)。 同样是在案例1中通过设置柱形图/折线图的向下钻取功

    07
    领券