一、目前想实现的功能是按下键盘的时候,键盘中某个键被按下,就执行什么命令
1、实现的方式:
新建qt的项目,可以放置个界面,需要重写键盘事件
2、加上头文件
#include <QKeyEvent>
3、在.h的文件中加上
(1)键盘按下的事件的重写
void keyPressEvent(QKeyEvent * event);(因为这边qt已经给封装了,所以这边的头文件里是重载函数)
或者写成virtual void keyPressEvent(QKeyEvent * event);
(2)键盘释放事件的重写
void keyReleaseEvent(QKeyEvent * event);
4、就需要在.cpp文件中进行实现
void MainWindow::keyPressEvent(QKeyEvent *event) //按下事件
{
if (event->key() == Qt::Key_Shift)//这边用的是shift键
{
//如果键盘按下shift键,就开始执行什么功能
}
}
void MainWindow::keyReleaseEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Shift)
{
//执行需要实现的功能
}
}
二、点击按钮的时候发出键盘的信号,就是点击按钮的时候与你按下键盘的某个键实现的功能是一致的
1、首先也是新建一个qt的项目,加上头文件#include <QKeyEvent>,然后就是在界面上拖上一个按钮,转到槽,发出事件
2、在.h文件中:
protected:
void keyPressEvent(QKeyEvent * event);
3、在.cpp文件中:
void Widget::on_pushButton_clicked()
{
QKeyEvent shiftkey(QEvent::KeyPress,Qt::Key_Shift,Qt::NoModifier);
QCoreApplication::sendEvent(this,&shiftkey);
}
void Widget::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Shift)
{
qDebug()<<"333";
}
}
这样就会发现最后点击按钮的时候,就会出现打印出来333,同时当你在键盘上按下shift键的时候,也会出现333,所以这样就实现了