События мыши QPlainTextEdit: щелчок правой/средней кнопкой не принимается в QTest ⇐ C++
События мыши QPlainTextEdit: щелчок правой/средней кнопкой не принимается в QTest
Я создал подкласс QPlainTextEdit, но не переопределил события нажатия/перемещения/отпускания мыши. Когда я имитирую щелчок левой кнопкой мыши по виджету в модульном тесте Qt, курсор успешно перемещается в положение, в котором был сделан щелчок. Однако, когда я имитирую щелчок правой кнопкой мыши или средней кнопкой мыши в той же позиции, я получаю следующие предупреждения:
Событие мыши «MousePress» не принято принимающим виджетом Событие мыши «MouseRelease» не принято получающим виджетом Вот мой код:
widget->setMouseTracking(true); виджет->setFocus(); QCoreApplication::processEvents(); QTest::qWait(1000); // Это только для тестирования, на всякий случай // Это работает даже при передаче QPoint в случайную позицию внутри виджета (позиция курсора перемещается) QTest::mouseClick(widget, Qt::LeftButton, Qt::NoModifier, widget->cursorRect().center()); // Это не работает, и выводятся предупреждения QTest::mouseClick(widget, Qt::RightButton, Qt::NoModifier, widget->cursorRect().center()); Есть ли у кого-нибудь предложения о том, почему это происходит и как я могу это решить?
РЕДАКТИРОВАТЬ: Qt версия 5.15.2
Я создал подкласс QPlainTextEdit, но не переопределил события нажатия/перемещения/отпускания мыши. Когда я имитирую щелчок левой кнопкой мыши по виджету в модульном тесте Qt, курсор успешно перемещается в положение, в котором был сделан щелчок. Однако, когда я имитирую щелчок правой кнопкой мыши или средней кнопкой мыши в той же позиции, я получаю следующие предупреждения:
Событие мыши «MousePress» не принято принимающим виджетом Событие мыши «MouseRelease» не принято получающим виджетом Вот мой код:
widget->setMouseTracking(true); виджет->setFocus(); QCoreApplication::processEvents(); QTest::qWait(1000); // Это только для тестирования, на всякий случай // Это работает даже при передаче QPoint в случайную позицию внутри виджета (позиция курсора перемещается) QTest::mouseClick(widget, Qt::LeftButton, Qt::NoModifier, widget->cursorRect().center()); // Это не работает, и выводятся предупреждения QTest::mouseClick(widget, Qt::RightButton, Qt::NoModifier, widget->cursorRect().center()); Есть ли у кого-нибудь предложения о том, почему это происходит и как я могу это решить?
РЕДАКТИРОВАТЬ: Qt версия 5.15.2
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение