fillsolidrect(使用fillsolidrect实现矩形填充效果)
fillsolidrect是一种常用的矩形填充函数,它的作用是在给定的矩形区域内填充指定的颜色。使用fillsolidrect可以实现多种视觉效果,例如为图像添加背景色、为文本框添加背景色以增强可读性等。下面将详细介绍如何使用fillsolidrect实现矩形填充效果。
一、函数基础
fillsolidrect有两个输入参数,第一个参数是需要填充的矩形区域,第二个参数是用于填充的颜色值。矩形区域可以用QT自带的QRect类表示,颜色值可以用QColor类表示。
示例代码如下:
QRect r(0, 0, 100, 100); QColor c(Qt::red); painter->fillRect(r, c);
上述代码中,r表示矩形左上角坐标为(0, 0),宽度和高度都为100的矩形;c表示填充颜色为红色。painter是一个QPainter对象,用于在Qt程序中绘制图形。
二、绘制圆角矩形
使用fillsolidrect可以绘制普通矩形,但是有时候我们需要绘制圆角矩形以增加UI的美观度。为了实现圆角矩形的绘制,我们可以使用QT自带的QPainterPath类和QPainter的drawPath函数。
示例代码如下:
int radius = 10; QRectF rect(0, 0, 100, 100); QPainterPath path; path.addRoundedRect(rect, radius, radius); painter->fillPath(path, QColor(0, 255, 0));
上述代码中,radius表示矩形圆角半径,rect表示矩形左上角坐标为(0, 0),宽度和高度都为100的矩形;path表示将矩形转换成路径,加上圆角后即得到圆角矩形;最后使用fillPath函数填充路径,颜色为绿色。
三、绘制渐变矩形
使用渐变色可以为矩形区域添加更加丰富多彩的视觉效果,QT中提供了QGradient类实现各种渐变效果。
示例代码如下:
QRect r(0, 0, 100, 100); QLinearGradient gradient(r.topLeft(), r.topRight()); gradient.setColorAt(0, Qt::green); gradient.setColorAt(1, Qt::blue); painter->setBrush(gradient); painter->drawRect(r);
上述代码中,r表示矩形左上角坐标为(0, 0),宽度和高度都为100的矩形;gradient表示线性渐变,从矩形左上角到右上角颜色从绿色渐变到蓝色;setBrush函数设置画刷为线性渐变;drawRect函数绘制矩形。
四、绘制背景透明矩形
有时候我们需要实现只有边框有颜色,矩形内部为透明的效果。这种效果可以使用QT自带的QPen和QBrush类实现。
示例代码如下:
QRect r(0, 0, 100, 100); painter->setPen(QPen(QColor(255, 0, 0), 2)); painter->setBrush(Qt::NoBrush); painter->drawRect(r);
上述代码中,r表示矩形左上角坐标为(0, 0),宽度和高度都为100的矩形;setPen函数设置画笔为红色,线宽为2;setBrush函数设置画刷为无,即透明;drawRect函数绘制矩形。