问题:
我想在Qt框架下,响应键盘事件(比如回车)。
解决办法:
重写keyPressEvent这个方法
头文件:
#ifndef B_BAGD_H
#define B_BAGD_H
#include <QDockWidget>
#include <QKeyEvent>
#include <QDebug>
namespace Ui {
class b_bagd;
}
class b_bagd : public QDockWidget
{
Q_OBJECT
public:
explicit b_bagd(QWidget *parent = 0);
~b_bagd();
private slots:
private:
Ui::b_bagd *ui;
void keyPressEvent(QKeyEvent *event); //看这里
};
#endif // B_BAGD_H
源文件:
#include "b_bagd.h"
#include "ui_b_bagd.h"
using namespace std;
b_bagd::b_bagd(QWidget *parent) :
QDockWidget(parent),
ui(new Ui::b_bagd)
{
ui->setupUi(this);
}
b_bagd::~b_bagd()
{
delete ui;
}
void b_bagd::keyPressEvent(QKeyEvent *event){
if(event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return){
qDebug() << "按下了Enter键";
}
}
要记得加上
#include <QKeyEvent>
只能在当前Widget中实现,切换Widget后就没有效果了,在这个例子里是用QDockWidget展示。
找了大半天资料,其实做完后觉得也没多复杂 =_=
参考资料:
qt 回车事件之Qt::Key_Return与Qt::Key_Enter
感谢以上分享文章的网友。