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();
}
运行效果:
相关推荐
ajassi200036 分钟前
开源 C++ QT Widget 开发(十六)程序发布
linux·c++·qt·开源
蜀中廖化42 分钟前
bash:trtexec:command not found
开发语言·bash
堕落年代1 小时前
小红书JS SDK签名过程
开发语言·javascript·ecmascript
MediaTea1 小时前
Python:math 库函数手册(双曲函数)
开发语言·python
€8111 小时前
Java入门级教程16——JUC的安全并发包机制
java·开发语言·juc的安全并发包机制·栅栏机制·闭锁机制·信号量机制·无锁机制
爱吃KFC的大肥羊2 小时前
C++三大特性之“继承”
开发语言·c++
毕设源码-李学长2 小时前
计算机毕业设计java高校多媒体教室管理系统高校多媒体教室综合管理系统高校智能多媒体教室管理平台
java·开发语言·课程设计
先知后行。2 小时前
线程的创建.销毁
开发语言·c++·算法
DdduZe2 小时前
9.11作业
c++·qt
鱼嘻2 小时前
西嘎嘎学习 - C++ 继承 - Day 10
开发语言·c++·学习·算法