#include #include #include #include #include class myLabel : public QLabel { Q_OBJECT public: void mouseReleaseEvent(QMouseEvent *e); myLabel(QWidget *parent = 0); ~myLabel(); signals: void clicked(); }; myLabel::myLabel(QWidget *parent) : QLabel(parent) { } myLabel::~myLabel() { } void myLabel::mouseReleaseEvent(QMouseEvent* e) { if (e->button() == Qt::LeftButton) setText("Left Clicked"); if (e->button() == Qt::MidButton) setText("Mid Clicked"); if (e->button() == Qt::RightButton) setText("Right Clicked"); QLabel::mouseReleaseEvent(e); emit clicked(); } int main (int argc, char *argv[]) { QApplication app(argc, argv); myLabel lbl; QObject::connect(&lbl, SIGNAL(clicked()), &app, SLOT(close())); lbl.setGeometry(512,100,100,10); lbl.show(); app.exec(); } #include "main.moc" //----------------------------- // компилить так: // qmake -project // qmake make