找回密码
 立即注册
收起左侧

基于Qt5教程第9篇写的一个键鼠事件练习作品

0
回复
5903
查看
[复制链接]
累计签到:9 天
连续签到:1 天
来源: 2018-10-6 18:07:17 显示全部楼层 |阅读模式
.h文件#ifndef MAINWINDOW_H#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {class MainWindow;}
class MainWindow : public QMainWindow{    Q_OBJECT
public:    explicit MainWindow(QWidget *parent = 0);    ~MainWindow();
private:    Ui::MainWindow *ui;    QString KeyName=(tr(""));protected:    void mousePressEvent(QMouseEvent *event);    void keyPressEvent(QKeyEvent *);
};
#endif // MAINWINDOW_H

cpp文件#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMouseEvent>


MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    setWindowTitle(tr("键鼠练习实例"));}
MainWindow::~MainWindow(){    delete ui;}
void MainWindow::mousePressEvent(QMouseEvent *e){
    if(e->button()&Qt::RightButton )//判断右击    {//     ui->pushButton->setText(tr("右击"));       KeyName=tr("右击");       ui->pushButton->setText(tr("(%1,%2,%3)").arg(e->x()).arg(e->y()).arg(KeyName));    }    else if(e->button()&Qt::LeftButton)//判断左击    {        KeyName=tr("左击");        ui->pushButton->setText(tr("(%1,%2,%3)").arg(e->x()).arg(e->y()).arg(KeyName));    }}
void MainWindow::keyPressEvent(QKeyEvent *e){   int x = ui->pushButton->x();   int y = ui->pushButton->y();   switch (e->key())   {   case Qt::Key_W :y=y-10; KeyName=tr("W"); break;   case Qt::Key_S :y=y+10; KeyName=tr("S"); break;   case Qt::Key_A :x=x-10; KeyName=tr("A"); break;   case Qt::Key_D :x=x+10; KeyName=tr("D"); break;   }   ui->pushButton->move(x, y);   ui->pushButton->setText(tr("%1, %2, %3").arg(x).arg(y).arg(KeyName));}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了