qt之2D图形-----------------绘制基础图形

看到大佬一去二三里的文章QT之图形2D。然后自己就学习画了一个笑脸。

效果图如下

主要用到了QPainter类,画的有矩形,弧形,设置字体。

贴出代码如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    this->resize(QSize(900,700));//设置窗口大小
}

void MainWindow::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);  //没有实质性的作用,用来避免编译器警告

    QPainter painter(this); //新建一个QPainter对象
    QRectF rect(90.0,90.0, 80.0, 90.0);
    
    int startAngle = 30 * 16;//起始角度
    int spanAngle = 120 * 16;//跨越角度()

    painter.setRenderHint(QPainter::Antialiasing, true);
    painter.setPen(QPen(QColor(0, 160, 230),2)); //设置画笔颜色
    painter.setBrush(QColor(255, 160,90));//设置填充颜色
    painter.drawRect(50, 50, 160, 100); //这个是坐标
    painter.drawArc(rect, startAngle, spanAngle);//画弧线

    QPainter paint(this);
    QRectF rect1(485.0,90.0, 80.0, 90.0);//矩形

    paint.setRenderHint(QPainter::Antialiasing, true);
    paint.setPen(QPen(QColor(0, 160, 230),2));
    paint.setBrush(QColor(255, 160,90));
    paint.drawRect(450, 50, 160, 100); //这个是坐标
    paint.drawArc(rect1, startAngle, spanAngle);//画弧线


    QPainter paint2(this);

    paint2.setRenderHint(QPainter::Antialiasing,true);
    paint2.setPen(QPen(QColor(0,160,230),2));
    paint2.setBrush(QColor(255, 160, 90));
    paint2.drawEllipse(QPoint(335, 200), 40, 40);
    QRectF rect2(80.0,300.0,900.0, 90.0);

    QFont font1;//QFont 字体
    font1.setFamily("Microsofe YaHei");//设置字体为微软雅黑
    font1.setPointSize(50);
    font1.setItalic(true);//设置斜体
    paint2.setFont(font1);

    paint2.drawText(rect2, Qt::AlignLeft, "Hello 2019 希望你善良");

}

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

猜你喜欢

转载自blog.csdn.net/weixin_39770778/article/details/84940620
今日推荐