QT 触发系统事件
我想实现下面的一个小功能,比如说我有一个button,当我用鼠标点击这个button的时候,就触发键盘按下事件,这里假如按下键A。该如何实现?求大神指点。感激不尽。
补充:
也就是说我点击button就会有相当于按下键盘A的效果。 Qt 事件 系统事件
[解决办法]
点击鼠标时你的程序窗口处于活动状态,这么做就没意义。。。可以通过sendevent发送事件
[解决办法]
windows的话可以用keybd_event
例子1:模拟按下'A'键
keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0);
[解决办法]
先将button->installEventFilter(this);
在写bool MyWidget::eventFilter(QObject *obj, QEvent *event)
{
if (obj == button)
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
qDebug() << "Ate key press" << keyEvent->key();
if(keyEvent->key()==Qt::Key_A)
{
close();
return true;
}
}
}
return QObject::eventFilter(obj, event);
}
绝对可以,这个方法可以实现很多功能的