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();
}
运行效果:
相关推荐
yaoxin5211232 小时前
434. Java 日期时间 API - Period 基于日期的时间段
java·开发语言·python
凡人叶枫2 小时前
Effective C++ 条款30:透彻了解 inlining 的里里外外
linux·开发语言·c++·嵌入式开发·effective c++
学逆向的3 小时前
C++纯虚函数
开发语言·c++·网络安全
程序员二叉3 小时前
【JUC】ThreadLocal底层原理|内存泄漏|弱引用|跨线程传递方案
java·开发语言·面试·职场和发展·juc
程序员二叉3 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc
凡人叶枫4 小时前
Effective C++ 条款22:将成员变量声明为 private
linux·开发语言·c++
Qt程序员4 小时前
掌握 Linux 内核调度:从原理到实现(进程篇)
java·开发语言
code bean4 小时前
【LangChain】检索器完全指南:从向量检索到生产级 RAG 架构
java·开发语言·微服务
LabVIEW开发4 小时前
LabVIEW + MATLAB 混合编程:爆炸场测试数据精准采集方案
开发语言·matlab·labview
嵌入式协会20240724 小时前
(已解决)MinIO python 获取预签名出现forbidden、errornetwork等错误
java·开发语言·python