欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Qt5/QPainter/画家

Qt5/QPainter/画家

2025/4/30 14:27:17 来源:https://blog.csdn.net/lhz7788/article/details/143814483  浏览:    关键词:Qt5/QPainter/画家

 

目录

 

1.绘制文字

1.1案例

1.2代码 

2.画线 

2.1案例

 2.2代码

3.绘制矩形

3.1代码

4.绘制椭圆和圆

4.1椭圆

4.2圆

5.圆弧

5.1案例:

5.2代码 

6.扇形

6.1案例 

6.2代码:

7.更改绘画的颜色和粗细

7.1案例 

​编辑 7.2代码


1.绘制文字

1.1案例

通过三种不同的绘制方式进行绘制

1.2代码 

void Widget::paintEvent(QPaintEvent *event)
{//实列化一个QPainter对象,this表示在Widget的这个窗口进行会话QPainter painter(this);painter.setPen(Qt::blue);//设置画笔的颜色painter.setFont(QFont("Arial", 20));//设置字体,"Arial"为字体类型,30为要设置的字体大小//在窗口的坐标(x:40,y:60)的位置绘制"小张"//drawText(int x, int y, const QString &text)painter.drawText(40,60,"小张");//在矩形rect(窗口),的中间位置(Qt::AlignCenter),绘制"Qt案例"//drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)//drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)painter.drawText(rect(), Qt::AlignCenter, "Qt案例");//在窗口的坐标(x:150,y:200)的位置建立一个长100宽100的矩形,在这个矩形的中间绘制"Qt5","Qt::AlignCenter"表示在矩形的中间绘制//drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)painter.drawText(150,200,100,100,Qt::AlignCenter, "Qt5");
}

2.画线 

2.1案例

通过3种不同的方法绘制同一种线 

 

 2.2代码

void Widget::paintEvent(QPaintEvent *event)
{//实列化一个QPainter对象,this表示在Widget的这个窗口进行会话QPainter painter(this);painter.setPen(Qt::blue);//设置画笔的颜色painter.setFont(QFont("Arial", 20));//设置字体,"Arial"为字体类型,30为要设置的字体大小painter.drawLine(10,200,300,20);painter.drawLine(QLine(10,200,300,20));painter.drawLine(QPoint(10,200),QPoint(300,20));
}

3.绘制矩形

3.1代码

    方式1:QRect rectangle(200,100,220,120);//在(200,100)的位置实列化一个长220矩形宽120的矩形painter.drawRect(rectangle);方式2:painter.drawRect(200,100,220,120);//直接绘制

4.绘制椭圆和圆

4.1椭圆

    //方法1QRect rectangle(200,100,220,120);painter.drawEllipse(rectangle);//在坐标(300,300)为中心处绘制painter.drawEllipse(300,300,200,100);

4.2圆

当椭圆的短轴的长度与长轴长的长度一样时即可画圆

   //方法1QRect rectangle(200,100,120,120);painter.drawEllipse(rectangle);//在坐标(300,300)为中心处绘制painter.drawEllipse(300,300,200,200);

5.圆弧

起始角和伸缩角必须以1/16度指定,即一个完整的圆等于5760(16*360),可以理解为Qt将我们认知中的1°又细分了16份。 角度的正值表示逆时针方向,负值表示顺时针方向。零度在3点钟方位。

5.1案例:

5.2代码 

    QRect rectangle(200,100,220,180);painter.drawArc(rectangle,30*16,120*16);

6.扇形

扇形绘制与弧形类似

6.1案例 

6.2代码:

    QRect rectangle(200,100,220,180);painter.drawPie(rectangle,30*16,120*16);

7.更改绘画的颜色和粗细

7.1案例 

 7.2代码

void Widget::paintEvent(QPaintEvent *event)
{//实列化一个QPainter对象,this表示在Widget的这个窗口进行会话QPainter painter(this);//使加粗后的线条看起来更光滑painter.setRenderHint(QPainter::Antialiasing,true);QPen pen(Qt::red,7);//7为线条宽度即宽度为7个像素点painter.setPen(pen);QRect rectangle(200,100,220,180);painter.drawPie(rectangle,30*16,120*16);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词