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は、ファイルIこのコードを使用するが、私は、画像を回転させるときに画像のサイズを変更するサイズを変更することなく、QPixmapのを回転させる方法
#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));
}
ヘッダファイル
それらcordinates
を使用してピックスマップリソースファイルを追加すると、ダイヤルの内側に完璧なサイズ変更が可能と回転可能な画像を取得しますそしてあなたが得たいもの。 – eyllanesc
私はちょうどQDialの背景画像を追加するためのスタイルシートをサポートするためのカスタムクラスを作った今私の問題は、このコードでダイヤラーで画像を回転すると、画像のサイズが変わる、Qpixmapを回転する別の方法はありますか? – Sonicpath
コードを表示してコードをテストし、修正方法を確認してください。 – eyllanesc