2020-8-21 QT转盘
1.设定widget的大小

2.使用QPainter进行绘制事件
头文件:#include <QPainter>
protected:
virtual void paintEvent(QPaintEvent* event);//增加一个绘制事件
private:
Ui::Widget *ui;
QPainter rotationPainter;
3.添加资源图片
增加图片可以通过右键resource.qrc选择open in Editor来插入图片
4.旋转图片
void Widget::paintEvent(QPaintEvent *event)
{
rotationPainter.begin(this);
rotationPainter.translate(200,200);//将坐标轴设置为200,200
rotationPainter.rotate(10.0);
rotationPainter.drawPixmap(-200,-200,400,400,QPixmap(":/pic/pic/choujiang.png"));
//格式为.drawPixmap(位置x,位置y,设置图像高,设置图像宽,QPixmap("路径"))
rotationPainter.end();
}
这样就旋转了一个小角度
5.连续旋转
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QPainter>
#include <QWidget>
#include <QEvent>
#include <QTimer>//加入计时器
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
public slots:
void rtTimerOutSlot();//声明一个槽函数
protected:
virtual void paintEvent(QPaintEvent* event);//增加一个绘制事件
private:
Ui::Widget *ui;
QPainter rotationPainter;
QTimer rtTimer;//旋转定时器
qreal rtAngle;//旋转角度
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
connect(&rtTimer,SIGNAL(timeout()),this,SLOT(

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



