QPixmap tPixmap(*ui->rLabel->pixmap());
QSize size;QRect rc;int w, h, x, y;
x=tPixmap.width();y=tPixmap.height();size=tPixmap.size();rc=ui->rLabel->geometry();w=rc.width();h=rc.height();
rc.setWidth(h);rc.setHeight(w);
QPixmap rotatePixmap(size*2);
QPainter p(&rotatePixmap);
p.translate(rotatePixmap.size().width()/2, rotatePixmap.size().height()/2);
p.rotate(90);
p.translate(-rotatePixmap.size().width()/2, -rotatePixmap.size().height()/2);
p.drawPixmap(y,x, tPixmap);
p.end();
tPixmap=rotatePixmap.copy(0, 2*y-x, y, x);
ui->rLabel->setGeometry(rc);
ui->rLabel->setPixmap(tPixmap);
#include <QSize>#include <QPainter>#include <math.h>#define PI 3.14159265
QPixmap *mem_pix;
QPixmap rotor(int a, QPixmap pix);
if (mem_pix==0) mem_pix = new QPixmap(*ui->rLabel->pixmap());
ui->rLabel->setPixmap(rotor(a, *mem_pix));
double g=a*PI/180;
QSize sz=pix.size();QPixmap canv_pix(sz*2);canv_pix.fill(Qt::transparent); // залить пустотой
// центр холстаint x=sz.width();int y=sz.height();
QPainter p(canv_pix);
p.translate(x,y);p.rotate(a); p.translate(-x,-y);
p.drawPixmap(x/2,y/2, pix);
int h=x*fabs(sin(g))+ y*fabs(cos(g));int w=x*fabs(cos(g))+ y*fabs(sin(g));x=x-w/2;y=y-h/2;pix=canv_pix.copy(x, y, w, h);return pix;
QSize sz;QRect rc;QPoint pn;rc=ui->rLabel->geometry();pn.setX(rc.x()+rc.width()/2);pn.setY(rc.y()+rc.height()/2);sz=ui->rLabel->pixmap()->size();rc.setWidth(sz.width());rc.setHeight(sz.height());rc.setX(pn.x()-rc.width()/2);rc.setY(pn.y()-rc.height()/2);ui->rLabel->setGeometry(rc);ui->label->setText(QString::number(value));
QrLabel *rLabel; // создать указатель на вращающийся Qlabel...// Создать QrLabel rLabel=new QrLabel(ui->centralWidget); QImage im(":/new/prefix1/cat"); // тут может быть что-то ваше rLabel->setPixmap(QPixmap::fromImage(im)); QRect rc; rc.setX(100); rc.setY(70); rc.setWidth(im.width()); rc.setHeight(im.height()); rLabel->setGeometry(rc); rLabel->show();...rlabel.rotor(a) // повернуть на угол а
C++ (Qt)QPixmap QPixmap::transformed ( const QTransform & transform, Qt::TransformationMode mode = Qt::FastTransformation ) constQTransform & QTransform::rotate ( qreal angle, Qt::Axis axis = Qt::ZAxis )