日志
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 : |
下一篇: QT鼠标事件总结
上一篇: 信号与槽的新语法(Qt5)