1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| #include <QtGui>
class Widget : public QWidget
{
Q_OBJECT
QPixmap pix;
QTimeLine m_t;
public:
Widget(QWidget *parent = 0)
: QWidget(parent),pix("c:/Clipboard01.jpg")
{
connect(&m_t,SIGNAL(valueChanged(qreal)),this,SLOT(update()));
m_t.start();
m_t.setLoopCount(0);
m_t.setDuration(4000);
}
void paintEvent(QPaintEvent *)
{
QPainter p(this);
//position du centre de l'image
p.translate(width()/2,height()/2);
//rotation à appliquer
p.rotate(m_t.currentValue ()* 360);
//translation de l'image pour faire correspondre le centre.
p.translate(-pix.width()/2,-pix.height()/2);
p.drawPixmap(0,0,pix);
}
};
#include "main.moc"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
} |