MacOS鼠标指针闪烁并带有信号,而QLineEdit光标闪烁

时间:2019-05-14 11:47:00

标签: python macos pyqt pyqt5 macos-mojave

我正在MacOS Mojave上使用PyQt5开发一个小型媒体播放器应用程序。每当鼠标悬停在鼠标指针改变形状的小部件上时,鼠标指针就会开始闪烁(闪烁?),从而在普通鼠标指针和备用鼠标指针之间改变形状。

例如,如果我创建QLineEdit小部件,则将鼠标悬停在小部件上时,其鼠标指针将变为I型梁作为备用指针。通常,只要我将鼠标悬停在小部件上,鼠标指针就可以改变形状。但是,在下面的测试应用程序中,鼠标指针会连续改变I-Beam指针和普通箭头鼠标指针的形状,并以与小部件中输入位置光标相同的速率来回移动。

这里是显示问题的屏幕录像。请注意,当输入文字和选择文字时,随着文本输入光标的闪烁,鼠标指针如何在箭头和工字梁之间改变形状。

Mouse Flicker Screen Recording

示例代码在我的系统上显示此行为:

import sys
from PyQt5               import QtWidgets
from PyQt5               import QtCore


class MainWindow(QtWidgets.QMainWindow):
    sig = QtCore.pyqtSignal()
    def __init__(self):
        super().__init__()
        self.resize(400,400)
        self.cw = QtWidgets.QWidget(self)
        self.setCentralWidget(self.cw)
        self.l = QtWidgets.QVBoxLayout(self.cw)
        self.le = QtWidgets.QLineEdit(self.cw)
        self.l.addWidget(self.le)
        self.label = QtWidgets.QLabel()
        self.l.addWidget(self.label)
        self.show()

app=QtWidgets.QApplication([sys.argv])
w=MainWindow()
app.setActiveWindow(w)
exit_code = app.exec_()

sys.exit(exit_code)

在上面的代码中,我可以通过使用app.setCursorFlashTime(0)禁用行编辑光标闪烁来解决此问题。但是,这不能解决我的应用程序中的问题。在我的应用程序中,其他小部件中的信号也将导致相同的鼠标指针形状更改(闪烁)行为。

版本详细信息:
MacOS Mojave 10.14.5
PyQt5 5.12.2
Python 3.7.3

我过去已经开发了QtApplications,但从未观察到这种行为,并且对发生这种情况的原因不知所措。

有人对此刺激性行为有解决方案吗?

编辑:为清楚起见,将“鼠标光标”更改为“鼠标指针”。 编辑:更新到MacOS 10.14.5,问题仍然存在。 编辑:添加一个屏幕录像,使问题更加清楚。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

这是Qt中的错误:

https://bugreports.qt.io/browse/QTBUG-75552

看来这是5.12.2和5.12.3中的错误,安装5.12.1可以修复鼠标指针,我认为5.12.4也可以解决。