当前位置: 代码迷 >> 移动开发 >> 事件响应-QT
  详细解决方案

事件响应-QT

热度:4871   发布时间:2013-02-26 00:00:00.0
事件响应---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();
 }
运行效果如下:
大家可以看到,里面有html的标签代码,可见QT还是挺强大的,有了这些东西的结合,QT的内容更加丰富了。所以大家多掌握一些东西是挺重要的!

  相关解决方案