-1
任何人都可以幫助我如何使用鍵盤上的任意5個鍵模擬整個鼠標功能。前四個鍵用於鼠標光標移動。生成左鍵單擊事件的最後一個鍵。 光標移動正常工作。但左鍵單擊不適用於旋轉框和組合框。這裏大寫鎖定鍵用於生成左鍵單擊事件。在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;
}
}