QT第二周周三

题目:使用图片绘制出仪表盘
代码:
widget.h
cpp 复制代码
#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);
    void paintEvent(QPaintEvent* event) override;
    ~Widget();
public slots:
    void horizontalSliderValueChangedSlot();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
cpp 复制代码
#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(100);
    ui->horizontalSlider->setMinimum(0);
    connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(horizontalSliderValueChangedSlot()));
}

void Widget::paintEvent(QPaintEvent *event)
{
    int size = 250;
    QPainter p(this);
    p.translate(this->width()/2,this->height()/2);
    p.drawPixmap(-size,-size,2*size,2*size,QPixmap(":/n/rs/Pan.png"));


    p.rotate(130+2.8*ui->horizontalSlider->value());
    p.drawPixmap(-27,-20,200,40,QPixmap(":/n/rs/Point.png"));
}



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



void Widget::horizontalSliderValueChangedSlot()
{
    update();
}
运行效果:
相关推荐
charlie11451419114 分钟前
RK3506B: buildroot:出一份正规的最小 rootfs
开发语言·嵌入式·开源项目·rk3506b
Byron Loong31 分钟前
【c#】Bitmap释放之 大象与蚊子
开发语言·c#
音符犹如代码1 小时前
Java动态线程池:避坑原生线程池,吃透Dynamic-TP,手写一个Demo
java·开发语言
喜欢就别1 小时前
平均风险:Rényi DP 和零集中 DP
开发语言·r语言
无足鸟ICT1 小时前
【RHCA+】bash命令
linux·开发语言·bash
方华世界2 小时前
企业级Java AI Agent应用平台
java·开发语言·人工智能
ujainu小3 小时前
原生性能优化:6变量实现高效桥接
开发语言·华为·性能优化·harmonyos
甄同学3 小时前
第十七篇:Bash Executor命令执行器,安全运行Shell命令
开发语言·安全·bash
张3233 小时前
Go语言基础 Map 函数值 闭包
开发语言·golang
杜子不疼.3 小时前
【C++ 在线五子棋对战】- 会话管理模块实现
开发语言·c++