欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt基本图形绘制(圆、圆角矩形、圆弧、椭圆、扇形等)

程序员文章站 2022-03-31 11:30:13
...

https://blog.csdn.net/qq_40194498/article/details/79650641
首先介绍一下Qt的坐标机制:
Qt的坐标与我们常见的坐标不同,如图,假设下图的矩形就是我们的窗口,矩形左上角顶点即为坐标原点:

Qt基本图形绘制(圆、圆角矩形、圆弧、椭圆、扇形等)

绘制矩形
核心代码:

 paint->drawRect(20,20,160,160); 
  • 1

第1、2个参数制定矩形的左上角起点,第3个参数制定矩形的长度,第4个参数指定矩形的宽度

绘制圆和椭圆
核心代码:

paint->setPen(QPen(Qt::blue,4,Qt::SolidLine));
paint->drawEllipse(20,20,210,160);
  • 1
  • 2

第1,2个参数表示圆/椭圆距屏幕左上角的像素数。第3,4个参数表示圆/椭圆的宽度和高度,两者相同时为圆。更加确切地表述,这个圆或椭圆是在矩形中,这个矩形的左上角的顶点在坐标轴中的位置为(20,20),这个圆或椭圆的中心为这个矩形的中心

绘制圆角矩形
核心代码:

paint->setPen(QPen(Qt::blue,4,Qt::SolidLine));
paint->drawRoundRect(20,20,210,160,50,50);
  • 1
  • 2

前面四个参数和绘制矩形的参数一致,最后两个参数决定角的圆度。它可以为0到99之间的任意值(99代表最圆)。

绘制扇形图
核心代码:

QRectF rectangle(10.0, 20.0, 80.0, 60.0);//设定扇形所在的矩形,扇形画在矩形内部
int startAngle = 30 * 16;//起始角度,角度可以为负值,如-30*16
int spanAngle = 120 * 16;//覆盖的角度,绘制方向为逆时针方向
QPainter painter(this);
painter.drawPie(rectangle, startAngle, spanAngle);
  • 1
  • 2
  • 3
  • 4
  • 5

前四个参数定义圆(与drawEllipse()函数相同)。后两个参数定义圆的样式。0为起始角度(实际单位为1/16度),500为扇形所展开的角度(单位也为1/16度)。
Qt基本图形绘制(圆、圆角矩形、圆弧、椭圆、扇形等)

绘制弦
核心代码:

paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
paint->drawChord(20,20,210,160,500,1000);
  • 1
  • 2

drawChord()函数与drawPie()函数的参数完全相同。
Qt基本图形绘制(圆、圆角矩形、圆弧、椭圆、扇形等)

绘制圆弧
核心代码:

paint->setPen(QPen(Qt::green,4,Qt::SolidLine));
paint->drawArc(20,20,210,160,500,1000);
  • 1
  • 2

drawArc()函数与drawPie()函数的参数完全相同。
Qt基本图形绘制(圆、圆角矩形、圆弧、椭圆、扇形等)

相关标签: C/C++ qt