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();// 要求重绘
}

运行结果

相关推荐
云和数据.ChenGuang9 分钟前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
揣一尾游鱼yu17 分钟前
内部类和Object笔记
java·开发语言·object·内部类
小鱼仙官36 分钟前
Qt 主界面弹出分界面
开发语言·qt
你怎么知道我是队长1 小时前
C++零基础第3周:if/else、switch、for/while/do-while 控制流完全指南(附20段可运行代码+避坑清单)
java·开发语言·c++
冻柠檬飞冰走茶1 小时前
PTA刷题集之Airline Routes(C语言实现)
c语言·开发语言·数据结构·算法
damoluomu1 小时前
Node 的 Headless 出厂没有前台,Java 的 Headless 是从门户里长出来的
java·开发语言·node.js
我命由我123451 小时前
Python 实用操作 - 文件操作(打开与关闭文件、读取文件、文件写入)
java·开发语言·前端·javascript·数据库·python·java-ee
冻柠檬飞冰走茶2 小时前
PTA刷题集之Battle Over Cities - Hard Version(C语言实现)
c语言·开发语言·数据结构·算法
Дерек的学习记录2 小时前
Unreal Engine 5:第三人称运动系统和人物动画
开发语言·学习·ue5
Ramble_Naylor2 小时前
Rust深度解读:异步流(Async Streams)与生成器的处理艺术
开发语言·后端·rust