代碼:
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);
//內(nèi)圓
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();
}
運行截圖:
文章來源地址http://www.zghlxwxcb.cn/news/detail-799218.html
文章來源:http://www.zghlxwxcb.cn/news/detail-799218.html
到了這里,關(guān)于Qt第二周周二作業(yè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!