bool MainWindow::eventFilter(QObject *obj, QEvent *ev) { if (obj == view) { if (ev->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent *>(ev); switch (keyEvent->key()) { case Qt::Key_Enter: case Qt::Key_Return: on_actionLaunchInstance_triggered(); return true; case Qt::Key_Delete: on_actionDeleteInstance_triggered(); return true; case Qt::Key_F5: on_actionRefresh_triggered(); return true; case Qt::Key_F2: on_actionRenameInstance_triggered(); return true; default: break; } } } return QMainWindow::eventFilter(obj, ev); }
void MainWindow::keyPressEvent(QKeyEvent *event) { QWidget::keyPressEvent(event); if (event->key() == Qt::Key_C && (event->modifiers() & Qt::ControlModifier)) { View *view = (View *)ui->treeWidget->currentItem(); if(view){ if(copyView != view) { if(copyView){ delete copyView; } copyView = view->copyView(); LOG("拷贝"+copyView->getClassName() + ":" + copyView->getID()); } } } else if (event->key() == Qt::Key_V && (event->modifiers() & Qt::ControlModifier)) { if(copyView){ LOG("粘贴"+copyView->getClassName() + ":" + copyView->getID()); View *parenview = (View *)ui->treeWidget->currentItem(); if(parenview){ View *view = copyView; parenview->addSubView(view); UIEditWidget *uiedit = (UIEditWidget*)ui->tabWidget->currentWidget(); uiedit->refreshScene(); copyView = NULL; } } } else if (event->key() == Qt::Key_S && (event->modifiers() & Qt::ControlModifier)) { on_action_savexml_triggered(); }else if(event->key() == Qt::Key_F5){ on_actionRefresh_triggered(); }else if(event->key() == Qt::Key_Delete || event->key() == Qt::Key_Backspace){ deleteSelectedView(); } else if(event->key() == Qt::Key_F && (event->modifiers() & Qt::ControlModifier)){ qDebug() << "查找"; } }