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);
    ~Widget();

    void paintEvent(QPaintEvent *event) override;

public slots:
    void hslideValueChangedSlot(int);
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QPen>
#include <QtCore/qmath.h>
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(hslideValueChangedSlot(int)));
}

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


void Widget::paintEvent(QPaintEvent *event)
{
    QPainter p(this);

    //Qpainter:: translate()
    p.translate(this->width()/2,this->height()/2);
    p.setPen(Qt::NoPen);
    QBrush brush; brush.setColor(QColor(192,192,192)); brush.setStyle(Qt::SolidPattern);
    p.setBrush(brush);
    //外圆
    p.drawEllipse(-200,-200,400,400);

    QBrush brush1; brush1.setColor(QColor(0,0,0)); brush1.setStyle(Qt::SolidPattern);
    p.setBrush(brush1);
    //内圆
    p.drawEllipse(-170,-170,340,340);

    //直线
    p.rotate(ui->horizontalSlider->value());
    QPen pen; pen.setColor(QColor(255,255,255)); pen.setWidth(4); pen.setStyle(Qt::SolidLine);
    p.setPen(pen);
    p.drawLine(0,0,-120,120*sqrt(2));






}

void Widget::hslideValueChangedSlot(int)
{
    this->update();
}
运行截图:
相关推荐
z落落18 分钟前
C# ToCharArray + foreach遍历 + String与StringBuilder
开发语言·c#
学代码的真由酱33 分钟前
Java多用户一对一网页聊天室-测试报告
java·开发语言·功能测试·测试
人道领域36 分钟前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
xiaoshuaishuai81 小时前
C# AvaloniaUI动态显示图片
开发语言·c#
日光明媚1 小时前
一步生成视频!One-Forcing:DMD + 零成本 GAN,训练 200 步超越多步 SOTA
android·开发语言·kotlin
2301_803538952 小时前
Java读取Word图片的两种实用方法
java·开发语言·word
bug和崩溃我都要3 小时前
Qt 封装 libmpv 全功能视频播放器开发指南
开发语言·qt·音视频
郝学胜-神的一滴4 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面
郝亚军4 小时前
IEEE 754 单精度浮点的SEM表示
开发语言·c++·算法
zhangjw344 小时前
第15篇:Java多线程零基础入门,进程线程、线程创建方式、线程生命周期、线程安全彻底吃透
java·开发语言·面试