QT QPainter用法(包含画点,画圆,画矩形,画线等) |
您所在的位置:网站首页 › CAD2p画圆的用法 › QT QPainter用法(包含画点,画圆,画矩形,画线等) |
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 |