QT 学习之键盘事件( keyPressEvent)

Qt keyPressEvent

keyPressEvent是QWidget里面的函数,所以凡是继承自QWidget的类都可以通过实现这个函数来完成对按键事件的响应。

要让当前的widget能够响应按键事件,最先需要做的事情是,调用:

setFocusPolicy(Qt::StrongFocus);

接下来就是keyPressEvent方法的声明与实现了~

// 声明
void keyPressEvent(QKeyEvent *event);
 
  

//环境windows 工具qt 语言c++
 
 
//在主窗体类中声明键盘响应函数
void keyPressEvent(QKeyEvent * event);
 
 
//c.pp文件中实现
 
void MainWindow::keyPressEvent(QKeyEvent *event)
{
    //0x30对应Ascii表中0,0x31表示1,剩下的一次类推
    if (0x30 <= event->key() && 0x39 >= event->key())
    {
        qDebug()<<event->key();
    }
    else if (0x2a == event->key())
    {
       
        qDebug()<<event->key();
    }
    else if (0x1b == event->key())
    {
       
	qDebug()<<event->key();
 
    }
    else if (0x08 == event->key())
    {
        
	qDebug()<<event->key();
 
    }
    else if (0x23 == event->key())
    {
        
	qDebug()<<event->key();
 
    }
    else if (0x0d == event->key())
    {
        
	qDebug()<<event->key();
    else if (0x2e == event->key())
    {
        //sKey = ".";
        qDebug()<<"%d"<<event->key();
    }
    else if (0x54 == event->key())
    {
        
	qDebug()<<event->key();
 
    }
    else if (0x41 <= event->key() && 0x48 >= event->key())
    {
       
	qDebug()<<event->key();
    }
    else
    {
        
	qDebug()<<event->key();
    }
    
}
  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Qt5 中,你可以通过继承 QWidget 来创建自定义的窗口部件,并且通过重写 keyPressEvent() 函数来响应键盘事件。 具体的实现步骤如下: 1. 创建自定义窗口部件类并继承 QWidget。 ```cpp class MyWidget : public QWidget { Q_OBJECT public: MyWidget(QWidget *parent = nullptr); ~MyWidget(); protected: void keyPressEvent(QKeyEvent *event); }; ``` 2. 在类的实现文件中重写 keyPressEvent() 函数,并在函数中处理键盘事件。 ```cpp void MyWidget::keyPressEvent(QKeyEvent *event) { // 判断按下的键是哪个键 switch (event->key()) { case Qt::Key_Escape: // 如果按下的是 Esc 键,则关闭窗口 close(); break; case Qt::Key_Return: // 如果按下的是回车键,则执行某些操作 // TODO: Add your code here break; default: // 其他情况下,调用基类的函数处理该事件 QWidget::keyPressEvent(event); break; } } ``` 在上面的代码中,我们使用了 Qt 提供的 Qt::Key_XXX 常量来判断按下的是哪个键。如果是 Esc 键,则调用 close() 函数关闭窗口;如果是回车键,则可以添加自己的逻辑代码;如果是其他键,则调用 QWidget 基类的 keyPressEvent() 函数来处理该事件。 3. 在主函数中创建 MyWidget 对象并显示窗口。 ```cpp int main(int argc, char *argv[]) { QApplication a(argc, argv); MyWidget w; w.show(); return a.exec(); } ``` 这样,当用户在窗口中按下键盘时,就会触发 MyWidget 类中的 keyPressEvent() 函数,从而实现对键盘事件的响应。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值