QT QPainter用法(包含画点,画圆,画矩形,画线等)

您所在的位置:网站首页 CAD2p画圆的用法 QT QPainter用法(包含画点,画圆,画矩形,画线等)

QT QPainter用法(包含画点,画圆,画矩形,画线等)

2024-06-23 00:01| 来源: 网络整理| 查看: 265

       QPainter可以绘制从简单的直线到像饼图和弦这样的复杂形状。它也可以绘制排列的文本和像素映射。通常,它在一个“自然的”坐标系统中绘制,但是它也可以在视和世界转换中做到这些。

绘图工具的典型用法是:

构造一个绘图工具。设置画笔、画刷等等。绘制。销毁这个绘图工具。

下面就QPainter的使用做下面的做以下例子以倍后用

1、main.cpp不做任何修改

2、widget.h修改如下

#ifndef WIDGET_H#define WIDGET_H#include #include #include namespace Ui {class Widget;}class Widget : public QWidget{    Q_OBJECT    public:    explicit Widget(QWidget *parent = 0);    ~Widget();public:     void paintEvent(QPaintEvent *);    private:    Ui::Widget *ui;};#endif // WIDGET_H3、widget.cpp添加以下代码

#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);}Widget::~Widget(){    delete ui;}void Widget::paintEvent(QPaintEvent *){    QPen pen;    //1、画字    QPainter painter(this);    //painter.setPen(Qt::blue);    painter.setPen(Qt::blue);    painter.setFont(QFont("Arial", 50));    painter.drawText(rect(), Qt::AlignCenter, "Qt");    //2、画多边形    QRectF rectangle(100.0, 20.0, 80.0, 60.0);    int startAngle = 30 * 16;    int spanAngle = 120 * 16;    painter.drawArc(rectangle, startAngle, spanAngle);    static const QPointF points[4] = {        QPointF(10.0, 80.0),        QPointF(20.0, 10.0),        QPointF(80.0, 30.0),        QPointF(90.0, 70.0)    };    painter.drawConvexPolygon(points, 4);    //3、画圆    QRectF rectangle1(10.0, 100.0, 80.0, 80.0);    //QPainter painter(this);    painter.drawEllipse(rectangle1);    //4、画线    QLineF line(10.0, 80.0, 90.0, 20.0);    //QPainter(this);    painter.drawLine(line);    //5、画    static const QPointF points1[3] = {        QPointF(110.0, 180.0),        QPointF(120.0, 110.0),        QPointF(180.0, 130.0),    };    painter.drawPolyline(points1, 3);    //6、画矩形    painter.setPen(Qt::red);    QRectF rectangle2(200.0, 20.0, 80.0, 60.0);    painter.drawRect(rectangle2);    //7、画圆角矩形    QRectF rectangle3(200.0, 120.0, 80.0, 60.0);    painter.drawRoundedRect(rectangle3, 20.0, 15.0);    //8、画多个点    QPointF pointf[10];    pen.setWidth(6);    painter.setPen(pen); // 设置画笔    for (int i=0; i



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3