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();
}
运行效果:
相关推荐
xxie12379411 分钟前
Python装饰器与语法糖
开发语言·python
郑州光合科技余经理21 分钟前
海外外卖平台源码改造实战——多语言核心代码实现
java·开发语言·前端·后端·mysql·架构·php
凯瑟琳.奥古斯特31 分钟前
力扣1012数位DP解法详解
开发语言·c++·算法·leetcode·职场和发展
Railshiqian33 分钟前
UserPickerActivity 内部逻辑分析
开发语言·python
喜欢打篮球的普通人1 小时前
Trition程序编写:从“Hello CUDA“到“Hello Triton“:向量加法背后的编译黑魔法
开发语言·后端·rust
code_std1 小时前
java WebSocket 使用
java·开发语言·websocket
gihigo19981 小时前
FastSLAM2.0(精度优于1.0)MATLAB 实现
开发语言·matlab
Yolo566Q1 小时前
Noah-MP陆面过程模型建模方法与站点、区域模拟实践技术应用
开发语言·python
落叶-IT1 小时前
Java Scanner 类精讲:控制台交互
java·开发语言
chh5631 小时前
C++--string
java·开发语言·网络·c++·学习