Mr.Simple

http://www.qtcn.org/bbs/u/108698  [收藏] [复制]

bboyfeiyu

  • 15

    关注

  • 20

    粉丝

  • 70

    访客

  • 等级:新手上路
  • 总积分:61
  • 男,1994-02-01

最后登录:2017-09-14

更多资料

日志

QLabel单击事件

2011-10-05 22:46
//  .h file
#ifndef WIDGET_H

#define WIDGET_H


#include <QtGui/QWidget>
#include <QLabel>
#include <QKeyEvent>
#include <QMessageBox>
#include <QVBoxLayout>


class Widget : public QWidget
{
       Q_OBJECT
public:
      Widget(QWidget *parent = 0);
     ~Widget();
private:
     QLabel *Label;
protected:
     bool eventFilter(QObject *obj, QEvent *event);
};
#endif // WIDGET_H




//  .cpp file
#include "widget.h"


Widget::Widget(QWidget *parent): QWidget(parent)
{
    Label = new QLabel(this);
    Label->setText("Hello, Clicked  Me,Please!");
    Label->setFont(QFont("Times New Roman",16));
    
    QVBoxLayout *hLayout = new QVBoxLayout(this);
    hLayout->addWidget(Label);
    this->setLayout(hLayout);
    this->resize(320,240);


    Label->installEventFilter(this);    //  installEventFilter is important for this sample
}


Widget::~Widget()
{
}


bool Widget::eventFilter(QObject *obj, QEvent *event)
{
           if (obj == Label)
           {
                   if (event->type() == QEvent::MouseButtonPress) {
                                QMessageBox::warning(this,tr("Label Clicked Event"),tr("Ouch,Label was clicked !!"),
                                QMessageBox::Yes);
                                return true;
                  }
                  else
                        return false;
           }
       else
               return QWidget::eventFilter(obj, event);
}

like this :


分类:Qt4 Programming|回复:0|浏览:2662|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:05-18 00:46
©2005-2016 QTCN开发网 版权所有 Gzip disabled