#ifndef LAB_H
#define LAB_H
#include <qwidget.h>
#include <qlabel.h>
#include <qevent.h>
#include <qpixmap.h>
class Lab : public QLabel
{
Q_OBJECT
public:
Lab( QLabel *parent=0, const char *name=0 );
public slots:
void PressChange(QMouseEvent *);
void ReleaseChange(QMouseEvent *);
signals:
void clicked();
protected:
void mousePressEvent(QMouseEvent *);
void mouseReleaseEvent(QMouseEvent *);
private:
QLabel *la;
bool state;
QPixmap pix1;
QPixmap pix2;
};
#endif
#include <qapplication.h>
#include <qlabel.h>
#include <qpixmap.h>
#include <qevent.h>
#include "lab.h"
Lab::Lab(QLabel *parent, const char *name)
:QLabel(parent, name)
{
QPixmap pix3("STOP_BTN.png");
la = new QLabel("hello", this);
//la->setIcon(pix3);
la->setBackgroundColor(QColor(100,100,100));
la->setGeometry(0,0,100,100);
//pix1 = pix3;
//QPixmap pix4("PLAY_BTN.png");
//pix2 = pix4;
//state = false;
}
void Lab::mousePressEvent(QMouseEvent *e)
{
PressChange(e);
emit clicked();
}
void Lab::mouseReleaseEvent(QMouseEvent *e )
{
ReleaseChange(e);
emit clicked();
}
void Lab::PressChange(QMouseEvent *e)
{
QPixmap pix1("PLAY_BTN.png");
QPixmap pix2("STOP_BTN.png");
switch(e->button())
{
case Qt::LeftButton:
la->setText("OK!!");
la->setGeometry(0,0,100,100);
//la->show();
break;
case Qt::RightButton:
case Qt::MidButton:
case Qt::NoButton:
case Qt::ShiftButton:
case Qt::ControlButton:
case Qt::AltButton:
case Qt::Keypad:
case Qt::KeyButtonMask:
case Qt::MouseButtonMask:
break;
}
}
void Lab::ReleaseChange(QMouseEvent *e)
{
QPixmap pix1("PLAY_BTN.png");
QPixmap pix2("STOP_BTN.png");
switch(e->button())
{
case Qt::LeftButton:
//la->setIcon(pix2);
la->setText("Hello!");
la->setGeometry(0,0,100,100);
//la->show();
break;
case Qt::RightButton:
case Qt::MidButton:
case Qt::NoButton:
case Qt::ShiftButton:
case Qt::ControlButton:
case Qt::AltButton:
case Qt::Keypad:
case Qt::KeyButtonMask:
case Qt::MouseButtonMask:
break;
}
}
int main( int argc, char **argv )
{
QApplication a( argc, argv );
//QPixmap pi("PLAY_BTN.png");
//QPixmap pi2("STOP_BTN.png");
Lab aa;
QObject::connect(&aa, SIGNAL(clicked()), &aa, SLOT(PixChange(QMouseEvent *)));
QObject::connect(&aa, SIGNAL(clicked()), &aa, SLOT(ReleaseChange(QMouseEvent *)));
a.setMainWidget(&aa);
aa.show();
return a.exec();
}