Qt第二周周二作业

代码:
widget.h
#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
#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();
}
运行截图:

相关推荐

  1. Qt第一作业

    2024-01-17 08:54:05       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 08:54:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 08:54:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 08:54:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 08:54:05       18 阅读

热门阅读

  1. 微信小程序支付之V2支付

    2024-01-17 08:54:05       23 阅读
  2. Django消息框架

    2024-01-17 08:54:05       36 阅读
  3. Wargames与bash知识19

    2024-01-17 08:54:05       27 阅读
  4. 【Python 千题 —— 基础篇】猜数字小游戏

    2024-01-17 08:54:05       30 阅读
  5. js arguments对象的由来和用法

    2024-01-17 08:54:05       26 阅读
  6. vue的sync语法糖的使用

    2024-01-17 08:54:05       28 阅读
  7. 正则表达式2 常见模式

    2024-01-17 08:54:05       38 阅读
  8. 正则表达式

    2024-01-17 08:54:05       30 阅读