如何旋转QPixmap而不更改大小 我使用此代码,但当旋转图像时,它会更改图像的大小。如何在不改变大小的情况下旋转QPixmap
头文件
#ifndef CUSTOMDIAL_H
#define CUSTOMDIAL_H
#include <QDial>
class CustomDial : public QDial
{
Q_OBJECT
public:
CustomDial(QWidget * parent = nullptr);
private:
virtual void paintEvent(QPaintEvent*) override;
};
#endif
cpp文件
#include "Customdial.h"
#include <QGraphicsPixmapItem>
#include <QPainter>
#include <QColor>
#include <QPixmap>
CustomDial::CustomDial(QWidget* parent)
: QDial(parent)
{
// Default range
QDial::setRange(0,100);
}
void CustomDial::paintEvent(QPaintEvent*)
{
int a = QDial::sliderPosition();
QPainter painter(this);
//load pixmap
QPixmap pix(":/img/img/knob.png");
//rotate pixmap
QMatrix rm;
rm.rotate(a);
pix = pix.transformed(rm);
//draw pixmap
painter.drawPixmap(QPointF(0,0),
pix.scaled(QDial::height(),
QDial::height(),
Qt::KeepAspectRatio),
pix.rect().adjusted(1, 1, -1000, -1000));
}
如何旋转,在不改变大小我用这个代码,但是当我将图像旋转它改变图像的大小的QPixmap头文件
你是什么意思,解释自己更好的,你可以把你所得到的图像和你想要获得什么。 – eyllanesc
我刚做了一个QDial的自定义类来支持添加背景图像的样式表现在我的问题是,当您使用此代码在拨号程序中旋转图像时,它会更改图像的大小,还有另一种旋转Qpixmap的方式吗? – Sonicpath
显示您的代码,测试您的代码并查看它是如何修复的。 – eyllanesc