qt 绘制表盘

复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->horizontalSlider->setMaximum(300);
    ui->horizontalSlider->setMinimum(0);
    connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(hSliderValueChangedSlot(int)));
}

Widget::~Widget()
{
    delete ui;
}



void Widget::paintEvent(QPaintEvent *event)
{
    double R = this->width()/3;
    double r = this->width()/3;
    QPainter p(this);
    p.translate(this->width()/2, this->height()/2);
    p.setBrush(brush);
    p.drawPixmap(-R,-R, 2*R,2*R,QPixmap(":/rs/Pan.png"));
    p.rodate(120);

     p.rotate(   ui->horizontalSlider->value()    );//旋转
     p.drawPixmap(-20,-25,r/1.2,r/6,QPixmap(":/rs/Point.png"));



}
void Widget::hSliderValueChangedSlot(int)
{
    update();// 要求重绘
}

运行结果

相关推荐
geovindu1 小时前
go: Recursion Algorithm
开发语言·后端·算法·golang·递归算法
geovindu1 小时前
CSharp: Composite Pattern
开发语言·后端·c#·组合模式·结构型模式
消失的旧时光-19431 小时前
KMP Web 开发实战(二):js、wasmJs、browser、executable 到底是什么意思?
开发语言·前端·javascript·跨平台·kmp
十五年专注C++开发1 小时前
qobject_cast转换失败原因分析
c++·qt·dynamic_cast·qobject_cast
sycmancia1 小时前
Qt——线程的生命期问题
开发语言·qt
影寂ldy1 小时前
C# 多线程进阶知识点(线程优先级、多委托传参、线程锁、死锁)
开发语言·数据库·c#
国服第二切图仔1 小时前
09-搜索工具Grep与Glob
开发语言·javascript·ecmascript
凤山老林1 小时前
从“无法创建本地线程“异常说起:深度解析线程栈与JVM线程优化指南
java·开发语言·jvm
库克克2 小时前
【C++】多态
开发语言·c++
观远数据2 小时前
经营闭环的最后一公里:从看见问题到解决问题之间还差什么
java·开发语言·数据库