Qt 中响应回车事件 keyPressEvent

这两天闲着用Qt把迷宫问题重写了一下, 记得当时本科学数据结构的时候写迷宫问题,各种蛋疼,现在居然一下就写出来了, 这里不再多说。
我们现在想把原来的win32黑窗口用图形化显示出来, 于是想到了QT,
我们先把原始迷宫图显示出来:
这里写图片描述
添加回车事件
在类的声明中添加

void keyPressEvent(QKeyEvent * event);

在类的实现中添加

void Dialog::keyPressEvent(QKeyEvent *event)
{
    if (event->key() == Qt::Key_Return)
        onBtnOK();
}

这样Qt就可以响应我们的回车事件消息啦
效果如下:
这里写图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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() 函数,从而实现对键盘事件响应
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值