首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT 触发系统事件解决方案

2013-04-20 
QT 触发系统事件我想实现下面的一个小功能,比如说我有一个button,当我用鼠标点击这个button的时候,就触发

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);
}
绝对可以,这个方法可以实现很多功能的

热点排行