我正在MacOS Mojave上使用PyQt5开发一个小型媒体播放器应用程序。每当鼠标悬停在鼠标指针改变形状的小部件上时,鼠标指针就会开始闪烁(闪烁?),从而在普通鼠标指针和备用鼠标指针之间改变形状。
例如,如果我创建QLineEdit小部件,则将鼠标悬停在小部件上时,其鼠标指针将变为I型梁作为备用指针。通常,只要我将鼠标悬停在小部件上,鼠标指针就可以改变形状。但是,在下面的测试应用程序中,鼠标指针会连续改变I-Beam指针和普通箭头鼠标指针的形状,并以与小部件中输入位置光标相同的速率来回移动。
这里是显示问题的屏幕录像。请注意,当输入文字和选择文字时,随着文本输入光标的闪烁,鼠标指针如何在箭头和工字梁之间改变形状。
示例代码在我的系统上显示此行为:
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,问题仍然存在。 编辑:添加一个屏幕录像,使问题更加清楚。
答案 0 :(得分:0)
回答我自己的问题:
这是Qt中的错误:
https://bugreports.qt.io/browse/QTBUG-75552
看来这是5.12.2和5.12.3中的错误,安装5.12.1可以修复鼠标指针,我认为5.12.4也可以解决。