关于组合按键的事件处理问题
想要实现的功能是当按下Ctrl+Home键时,清空TextEdit空间中的内容
代码如下:
//qdragtest.cpp#include "qdragtest.h"#include<QKeyEvent>QDragTest::QDragTest(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags){ ui.setupUi(this);}QDragTest::~QDragTest(){}void QDragTest::keyPressDown(QKeyEvent *event){ switch(event->key()){ case Qt::Key_Home: if(event->modifiers()&Qt::ControlModifier) { ui.CodeEditor->clear(); } break; default: QWidget::keyPressEvent(event); }}
//qdragtest.h#ifndef QDRAGTEST_H#define QDRAGTEST_H#include <QtGui/QMainWindow>#include "ui_qdragtest.h"class QDragTest : public QMainWindow{ Q_OBJECTpublic: QDragTest(QWidget *parent = 0, Qt::WFlags flags = 0); ~QDragTest(); void keyPressDown(QKeyEvent *event);private: Ui::QDragTestClass ui;};#endif // QDRAGTEST_H
//main.cpp#include "qdragtest.h"#include <QtGui/QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); QDragTest w; w.show(); return a.exec();}