8000 Qt 键盘长按 · Issue #204 · holdyounger/ScopeBlog · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Qt 键盘长按 #204
Open
Open
@holdyounger

Description

@holdyounger

Qt 键盘长按

KeyPressEvent 事件

键盘事件是重写 keypressevent 函数,详见代码:

//keyLongPress.cpp
 
#include "keyLongPress.h"
#include "ui_keyLongPress.h"
 
KeyLongPress::KeyLongPress(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::KeyLongPress)
{
    ui->setupUi(this);
}
 
KeyLongPress::~KeyLongPress()
{
    delete ui;
}
 
//QMouseEvent没有isAutoRepeat()方法...无语了,
//这样有些操作就不方便实现了,
//比如长按鼠标多少秒呼出某个(登录)窗口啥的。
 
//! [按键按下事件-Begin]
void KeyLongPress::keyPressEvent(QKeyEvent *event)
{
    if(event->isAutoRepeat()){
        qDebug() <<  "按键长按中...";
    }
    else{
        qDebug() << "按键按下";
    }
}
//! [按键按下事件-End]
 
//! [按键释放事件-Begin]
void KeyLongPress::keyReleaseEvent(QKeyEvent *event)
{
    if(event->isAutoRepeat()){
        qDebug() <<  "按键不断释放...";
    }
    else{
        qDebug() << "按键释放";
    }
}
//! [按键释放事件-End]
 

运行之后,测试效果:

你Click看下输出:是只有1次Press和1次Release的,

长按看下输出:是Press和Release一直在不停的输出的。

示意图:

img

blog link Qt 键盘长按

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0