Я занимаюсь разработкой небольшого медиаплеера с использованием PyQt5 на MacOS Mojave.Каждый раз, когда мышь наводит курсор на виджет, в котором указатель мыши меняет форму, указатель мыши начинает мигать (мигать?), Изменяя форму между обычным указателем мыши и альтернативным указателем мыши.
Например, еслиЯ создаю виджет QLineEdit, указатель мыши меняется на I-Beam в качестве альтернативного указателя при наведении курсора на виджет.Обычно этот указатель мыши просто меняет форму, пока я нахожусь над виджетом.Однако в нижеприведенном тестовом приложении указатель мыши постоянно меняет форму между указателем I-Beam и обычным указателем мыши со стрелкой, изменяясь вперед и назад с той же скоростью, что и курсор положения ввода в виджете.
Здесьзапись экрана, показывающая проблемуОбратите внимание, как указатель мыши меняет форму между стрелкой и двутавровой балкой, когда курсор ввода текста мигает, когда я набираю текст и когда я выбираю текст.
![Mouse Flicker Screen Recording](https://i.stack.imgur.com/vIhtl.gif)
Пример кода, показывающий это поведение в моей системе:
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 Мохаве 10.14.5
PyQt5 5.12.2
Python 3.7.3
В прошлом я разработал приложения QtApplication и никогда не наблюдал такого поведения, и я не знаю, почему это происходит.
У кого-нибудь есть решение для этого крайне раздражающего поведения?
РЕДАКТИРОВАТЬ: для ясности измените «курсор мыши» на «указатель мыши».РЕДАКТИРОВАТЬ: Обновлено до MacOS 10.14.5 и проблема по-прежнему существует.РЕДАКТИРОВАТЬ: добавить запись экрана, чтобы сделать проблему более ясной.