Qt5开发学习之事件(十三)

来源:互联网 发布:u盘做linux启动盘 编辑:程序博客网 时间:2024/06/05 19:18

鼠标事件

鼠标事件包括鼠标的按下、移动、单击、双击、释放等;通过重写鼠标的事件函数完成。

#include "MouseEvent.h"MouseEvent::MouseEvent(QWidget *parent)    : QMainWindow(parent){    setWindowTitle(tr("鼠标事件"));    statusLabel = new QLabel(tr("当前位置"));    statusLabel->setFixedWidth(100);    mousePosLabel = new QLabel(tr(""));    mousePosLabel->setFixedWidth(100);    // 在MainWindow增加控件    statusBar()->addPermanentWidget(statusLabel);    statusBar()->addPermanentWidget(mousePosLabel);    // 设置窗体追踪鼠标    this->setMouseTracking(true);    resize(400, 200);}MouseEvent::~MouseEvent(){}void MouseEvent::mouseMoveEvent(QMouseEvent *event){    mousePosLabel->setText("(" + QString::number(event->x()) + "," + QString::number(event->y()) + ")");}void MouseEvent::mousePressEvent(QMouseEvent *event){    QString str = "(" + QString::number(event->x()) + "," + QString::number(event->y()) + ")";    if (event->button() == Qt::LeftButton)    {        statusBar()->showMessage(tr("左键:") + str);    }    else if (event->button() == Qt::RightButton)    {        statusBar()->showMessage(tr("右键:") + str);    }    else if (event->button() == Qt::MidButton)    {        statusBar()->showMessage(tr("中键") + str);    }}// 松开鼠标事件void MouseEvent::mouseReleaseEvent(QMouseEvent *event){    QString str = "(" + QString::number(event->x()) + "," + QString::number(event->y()) + ")";    statusBar()->showMessage(tr("释放在:") + str);}

键盘事件

在图像处理和游戏应用程序中有时需要通过键盘控制某个对象的移动,此功能可以通过重定义QWidget类的keyPressEvent()和keyReleaseEvent()来实现。

原创粉丝点击