-1
키보드의 5 개 키를 사용하여 전체 마우스 기능을 시뮬레이션하는 방법을 알려주십시오. 마우스 커서 이동을위한 처음 네 개의 키. 왼쪽 클릭 이벤트를 생성하는 마지막 키입니다. 커서 이동이 올바르게 작동합니다. 그러나 스핀 상자와 콤보 상자에서는 왼쪽 클릭이 작동하지 않습니다. 여기서 caps lock 키는 왼쪽 클릭 이벤트 생성에 사용됩니다.Qt에서 마우스 기능을 시뮬레이션하십시오
void MainWindow :: keyPressEvent(QKeyEvent *event)
{
switch(event->key())
{
case Qt::Key_CapsLock:
QPoint pt(m_pqCursObj->pos().x(),m_pqCursObj->pos().y());
cursor().setPos(pt);
QMouseEvent * event1 = new QMouseEvent ((QEvent::MouseButtonPress), QPoint(1,1),
Qt::LeftButton,
Qt::LeftButton,
Qt::NoModifier);
QCoreApplication::sendEvent(this,event1);
QMouseEvent * event2 = new QMouseEvent ((QEvent::MouseButtonRelease), QPoint(1,1),
Qt::LeftButton,
Qt::LeftButton,
Qt::NoModifier);
QObject * ObjunderPos = static_cast<QObject*>(QApplication::widgetAt(QCursor::pos()));
QWidget * qWidget = new QWidget;
qWidget = (QWidget *)ObjunderPos;
if(ObjunderPos)
{
qDebug()<<"Qobject";
if (qobject_cast<QLineEdit*>(qWidget))
qWidget->setFocus();
QCoreApplication::sendEvent(ObjunderPos,event1);
QCoreApplication::sendEvent(ObjunderPos,event2);
}
break;
}
}