zoukankan      html  css  js  c++  java
  • qt之esc键

       Esc键对大家来说实在熟悉不过的了,在Qt中Esc键也会默认的进行一些事件的触发,今天对Esc键测试了一下,突然发现不像我想象的那样,在QDialog中按下Esc键会默认调用reject()方法而不是closeEvent(QCloseEvent *event)或者其他事件。所以在这里如何管理和操作Esc键呢?

    1、重新实现reject()方法

    void LoginDialog::reject()

    {

        //关闭窗口,不一定非得是close(),可以重新执行其他事件

        this->close();

    }

    2、重写keyPressEvent(QKeyEvent *event)

    void LoginDialog::keyPressEvent(QKeyEvent *event)
    {
       switch(event->key())
       {
          //进行界面退出,重写Esc键,否则重写reject()方法
         case Qt::Key_Escape:
           this->close();
           break;

        default:
           QDialog::keyPressEvent(event);
       }
    }

        以上者两种方法都可以解决Esc键触发的问题!当然这只是在QDialog中是这种情况,在QWidget中也可以通过keyPressEvent(QKeyEvent *event)来制定Esc键的功能,但是再重写reject()就不行了,以为它默认执行的不是reject(),具体的可以测试一下!

    http://blog.sina.com.cn/s/blog_a6fb6cc90101b1v3.html

  • 相关阅读:
    4.23上机练习
    4.17java作业
    4.16java作业
    leetcode 189
    leetcode 172
    leetcode 171
    leetcode 169
    win10内网外网智能访问
    leetcode 168
    leetcode 165
  • 原文地址:https://www.cnblogs.com/findumars/p/6009825.html
Copyright © 2011-2022 走看看