头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
void paintEvent(QPaintEvent *event);
public slots:
void hSliderValueChangedSlot(int);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
功能函数
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QPainter>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setFixedSize(600,600);
ui->horizontalSlider->setMaximum(94);
ui->horizontalSlider->setMinimum(0);
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(hSliderValueChangedSlot(int)));
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter p(this); //以后画家在 窗口上作画
p.drawPixmap(this->width()/4,this->width()/4, this->width()/2,this->width()/2, QPixmap(":/rs/Pan.png" ));
p.translate(this->width()/1.99, this->height()/2.01);
p.rotate( 126+3*ui->horizontalSlider->value() );
p.drawPixmap(-10,-5, this->width()/6,this->width()/42, QPixmap(":/rs/Point.png" ));
}
void Widget::hSliderValueChangedSlot(int val)
{
qDebug()<<"val = "<<val;
this->update();
}