Qt 事件 QMouseEvent 鼠标示例

来源:互联网 发布:中年女装品牌 知乎 编辑:程序博客网 时间:2024/05/19 05:06
#include <QApplication>#include <QLabel>#include <QMouseEvent>class EventLabel : public QLabel{protected:    void mouseMoveEvent(QMouseEvent *event);    void mousePressEvent(QMouseEvent *event);    void mouseReleaseEvent(QMouseEvent *event);};void EventLabel::mouseMoveEvent(QMouseEvent *event){    this->setText(QString("<center><h1>Move:(%1,%2)</h1></center>")                  .arg(QString::number(event->x()),QString::number(event->y())));}void EventLabel::mousePressEvent(QMouseEvent *event){    this->setText(QString("<center><h1>Press:(%1,%2)</h1></center>")                  .arg(QString::number(event->x()),QString::number(event->y())));}void EventLabel::mouseReleaseEvent(QMouseEvent *event){    QString msg;    msg.sprintf("<center><h1>Release:(%d,%d)</h1></center>",                event->x(),event->y());    this->setText(msg);}int main(int argc, char *argv[]){    QApplication a(argc, argv);    EventLabel *label = new EventLabel;    label->setWindowTitle("MouseEvent Demo");    label->resize(300,200);    label->setMouseTracking(true);    //设定是否追踪鼠标(默认为false,组件至少一次鼠标点击之后,才能够被追踪)    label->show();    return a.exec();}

1 0
原创粉丝点击