我正在尝试使用C++中的QWidgts将图像围绕QT的原点(中心)旋转。我在这里做了很多实验,但是无论我做什么,图像都会围绕我不知道的任意位置旋转。请在这里帮助我。我是QT新手。

void gaugeWithRedZoneImage::rotate()
{
    QPixmap pixmap(*gaugeMainScreen->pixmap());
    QMatrix rm;
    rm.translate(0, 0);
    rm.rotate(-360);
    pixmap = pixmap.transformed(rm);
    gaugeMainScreen->setPixmap(pixmap);

    /*QTransform rotate_disc;
    rotate_disc.translate(pixmap.width()/2.0 , pixmap.height()/2.0);
    rotate_disc.rotate(-60);
    rotate_disc.translate(-(pixmap.width()/2.0) , -(pixmap.height()/2.0));
    pixmap = pixmap.transformed(rotate_disc);
    gaugeMainScreen->setPixmap(pixmap);*/
}

最佳答案

形成QPixmap::transformed()documentation:



这意味着该方法可确保通过附加 Canvas 不会发生剪切。无论旋转中心是什么, Canvas 的自动扩展几乎总是会导致感知到的移位。

图像示例可能有助于进一步诊断问题。

关于c++ - 如何在QT Widgets C++中围绕其中心旋转图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36265309/

10-11 22:12