Qt事件监听

接下来说说QT的响应事件吧,做过开发的应该都知道,无论是在做什么都离不开这个事件---event。好吧,今天说一说QT的事件监听是怎么实现的。先来看看一段代码吧:
 #include <QApplication>
 #include <QWidget>
 #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 app(argc, argv);
         EventLabel *label = new EventLabel;
         label->setWindowTitle("MouseEvent Demo");
         label->resize(300, 200);
         label->show();
         return app.exec();
 }

运行截图: Qt事件监听_第1张图片 (--------------完-------------------) 

你可能感兴趣的:(qt,Qt事件)