Я хочу моделирования событий мыши с Qt. Например, когда я нажимаю один ключ на клавиатуре, программа может имитировать событие щелчка мыши. Я попытался код ниже, но когда я нажимаю «K», программа останавливается и дает мне ошибку:Как имитировать событие мыши с Qt?
The program has unexpectedly finished.
case Qt::Key_K: QMouseEvent *mEvnPress; QMouseEvent *mEvnRelease; mEvnPress = new QMouseEvent(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); mEvnRelease = new QMouseEvent(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); QCoreApplication::sendEvent(QWidget::focusWidget(),mEvnPress); QCoreApplication::sendEvent(QWidget::focusWidget(),mEvnRelease); break;
Есть ли еще с этой ошибкой? Это крушение? Что происходит, когда вы запускаете его с помощью отладчика или QtCreator? Остановится ли она на определенной линии? – sFuller
Он может нормально работать и отображать главное окно в qtcreator. И нет никакого выхода без «Программа неожиданно закончила». когда я нажимаю клавишу «K» и дисплей основного окна. – Tairy
Первый параметр sendEvent кажется нечетным. Вы отправляете событие в виджет, который был в последний раз сосредоточен. Может ли focusWidget вернуть NULL? Возможно, вам стоит попробовать отправить его в главное окно и посмотреть, работает ли это. – sFuller