(1)例程,通过按键发送指定的按键事件
#include "widget.h"
Widget::Widget() : edit(this),bt("Delete",this)
{
edit.setGeometry(0,0,300,200);
bt.setGeometry(310,20,48,32);
connect(&bt, SIGNAL(clicked()), this, SLOT(onPushButton()));
}
void Widget::onPushButton()
{
int key = Qt::Key_Delete ;
QKeyEvent EventPress(QEvent::KeyPress,key,Qt::NoModifier);
QApplication::sendEvent(&edit,&EventPress); //发送键盘按下事件
QKeyEvent EventRelease(QEvent::KeyRelease,key,Qt::NoModifier);
QApplication::sendEvent(&edit,&EventRelease); //发送键盘松开事件
}
(2)提升 任意按键(焦点按键)实现发送
void MyInputPanelContext::sendKey(quint32 chr)
{//自定义键chr = Qt::Key (查看助手可得)
QPointer<QWidget> w = focusWidget();//可以判断指针是否为空
if(!w)
return;
QKeyEvent keyPress(QEvent::KeyPress, chr, Qt::NoModifier, QString(chr));
QApplication::sendEvent(w, &keyPress);
QKeyEvent keyRelease(QEvent::KeyRelease, chr, Qt::NoModifier, QString());
QApplication::sendEvent(w, &keyRelease);
}