/** rubberband.h
* 孤舟钓客
* 2011-07-25
*/
#ifndef RUBBERBAND_H
#define RUBBERBAND_H
#include <QtGui>
class QRubberBand;
class RubberBand : public QMainWindow
{
Q_OBJECT
public:
RubberBand(QWidget *parent = 0);
void mousePressEvent(QMouseEvent *); // event
void mouseMoveEvent(QMouseEvent *); // event
void mouseReleaseEvent(QMouseEvent *); // event
private:
QRubberBand *rubberBand;
QPoint origin;
};
#endif // RUBBERBAND_H
/** rubberband.cpp
* 孤舟钓客
* 2011-07-25
*/
#include "rubberband.h"
RubberBand::RubberBand(QWidget *parent)
: QMainWindow(parent)
{
QWidget *mainWidget = new QWidget;
mainWidget->setBackgroundRole(QPalette::Light);
mainWidget->setAutoFillBackground(true);
setCentralWidget(mainWidget);
resize(600, 400);
setWindowTitle(tr("RubberBand"));
rubberBand = NULL;
}
void RubberBand::mousePressEvent(QMouseEvent *e)
{
origin = e->pos();
if (!rubberBand)
rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
rubberBand->setGeometry(QRect(origin, QSize()));
rubberBand->show();
}
void RubberBand::mouseMoveEvent(QMouseEvent *e)
{
if (rubberBand)
rubberBand->setGeometry(QRect(origin, e->pos()).normalized());
}
void RubberBand::mouseReleaseEvent(QMouseEvent *e)
{
if (rubberBand)
rubberBand->hide();
}
/** main.cpp
* 孤舟钓客
* 2011-07-25
*/
#include <QApplication>
#include "rubberband.h"
int
main(int argc, char * argv[])
{
QApplication app(argc,argv);
QTranslator translator;
translator.load("rubberband_zh");
app.installTranslator(&translator);
RubberBand rubber;
rubber.show();
return app.exec();
}