看到大佬一去二三里的文章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;
}