diff --git a/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/lab2-3-5_KeyEvent.pro b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/lab2-3-5_KeyEvent.pro new file mode 100644 index 0000000..b915c09 --- /dev/null +++ b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/lab2-3-5_KeyEvent.pro @@ -0,0 +1,24 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +CONFIG += c++17 + +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + main.cpp \ + mainwindow.cpp + +HEADERS += \ + mainwindow.h + +FORMS += \ + mainwindow.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/main.cpp b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/main.cpp new file mode 100644 index 0000000..fd3e533 --- /dev/null +++ b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/main.cpp @@ -0,0 +1,11 @@ +#include "mainwindow.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + return a.exec(); +} diff --git a/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.cpp b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.cpp new file mode 100644 index 0000000..fcc48fa --- /dev/null +++ b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.cpp @@ -0,0 +1,32 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent), ui(new Ui::MainWindow) { + ui->setupUi(this); +} + +MainWindow::~MainWindow() { delete ui; } + +void MainWindow::keyPressEvent(QKeyEvent *event) { + if (event->key() == Qt::Key_Up) { + ui->l->move(ui->l->pos().x(), ui->l->pos().y() - 20); + } else if (event->key() == Qt::Key_Down) { + ui->l->move(ui->l->pos().x(), ui->l->pos().y() + 20); + } else if (event->key() == Qt::Key_Left) { + ui->l->move(ui->l->pos().x() - 20, ui->l->pos().y()); + } else if (event->key() == Qt::Key_Right) { + ui->l->move(ui->l->pos().x() + 20, ui->l->pos().y()); + } +} +void MainWindow::keyReleaseEvent(QKeyEvent *e) { + if (e->key() == Qt::Key_Up) { + ui->l->move(ui->l->pos().x(), ui->l->pos().y() - 20); + } else if (e->key() == Qt::Key_Down) { + ui->l->move(ui->l->pos().x(), ui->l->pos().y() + 20); + } else if (e->key() == Qt::Key_Left) { + ui->l->move(ui->l->pos().x() - 20, ui->l->pos().y()); + } else if (e->key() == Qt::Key_Right) { + ui->l->move(ui->l->pos().x() + 20, ui->l->pos().y()); + } +} diff --git a/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.h b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.h new file mode 100644 index 0000000..9de1fb3 --- /dev/null +++ b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.h @@ -0,0 +1,24 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +QT_BEGIN_NAMESPACE +namespace Ui { +class MainWindow; +} +QT_END_NAMESPACE + +class MainWindow : public QMainWindow { + Q_OBJECT + +public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + +private: + Ui::MainWindow *ui; + void keyPressEvent(QKeyEvent *e); + void keyReleaseEvent(QKeyEvent *e); +}; +#endif // MAINWINDOW_H diff --git a/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.ui b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.ui new file mode 100644 index 0000000..3703833 --- /dev/null +++ b/SoftwareDesign/Code/2-3-5/lab2-3-5_KeyEvent/mainwindow.ui @@ -0,0 +1,45 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + MainWindow + + + + + + 240 + 200 + 77 + 25 + + + + TextLabel + + + + + + + 0 + 0 + 800 + 30 + + + + + + + +