如何旋轉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