【问题标题】:Matplotlib, avoid update mouse cursor when drawMatplotlib,避免在绘制时更新鼠标光标
【发布时间】:2017-12-06 14:27:27
【问题描述】:

当使用set_datadraw 方法更新绘图时,鼠标光标会在几毫秒内从箭头变为圆形。有可能避免这种情况吗?因为我每秒更新我的绘图 10 次,所以看到我的鼠标光标变化如此之快是非常难看的。

我正在使用 Python 3.6、PyQt5 和 matplotlib 2.1。提前谢谢你;)

【问题讨论】:

    标签: python matplotlib mouse


    【解决方案1】:

    我找到了解决方案:离开斧头时使用QApplication.restoreOverrideCursor(),进入斧头时使用QApplication.setOverrideCursor(QCursor(Qt.ArrowCursor))。像这样:

    self.figure.canvas.mpl_connect("axes_enter_event", self.figureEntree)
    self.figure.canvas.mpl_connect("axes_leave_event", self.figureSortie)
    def figureSortie(self, event):
       QApplication.restoreOverrideCursor()
    def figureEntree(self, event):
       QApplication.setOverrideCursor(QCursor(Qt.ArrowCursor))
    

    如果您有工具栏,则可以调整 figureEntree 函数(沿工具活动更改光标 => 选择工具时更改的变量)。

    【讨论】:

    • 对于那些寻找完整命令的人: QtGui.QGuiApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) 。也可以使用其他游标,例如“QtCore.Qt.CrossCursor”。
    【解决方案2】:

    这是 matplotlib 2.1 的一个新“功能”。

    what's new page

    忙碌光标

    现在,当 Matplotlib 渲染画布时,交互式 GUI 后端会将光标变为忙碌状态。

    还有this issue关于不受欢迎的行为。

    【讨论】:

    • 似乎上述情况不适用于“TkAgg”后端,因此可以选择使用“TK”。
    • 我没有时间为我的地块更改库,所以我必须接受这个新功能,即使我认为,如果之前没有实现,有一种方法可以停用繁忙的光标.感谢您提供此信息。
    • 我会看看我稍后是否找到解决方案。
    • 我找到了解决方案:离开斧头时使用QApplication.restoreOverrideCursor()(事件axes_leave_event),进入时使用QApplication.setOverrideCursor(QCursor(Qt.ArrowCursor))(事件axes_enter_event
    • 太棒了。只需自己提供答案即可。
    猜你喜欢
    • 2012-08-20
    • 1970-01-01
    • 2020-08-27
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2015-03-27
    相关资源
    最近更新 更多