1、画圆角矩形: drawRoundedRect()
void QPainter::drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
QPainter p(this);
p.setPen(QColor(255,0,0));
QRect rect(100,100,100,100);//构造一个矩形
p.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);//反走样
//p.drawRoundRect(rect,15,15);
p.drawRoundedRect(rect,5,5,Qt::AbsoluteSize);//
输出图形:
2、绘制多边形填充颜色+透明渐变
point_move_comp1和point_move_comp1坐标为(0,135)
int comp1_y = 135 - point_move_comp1.x();
// 设置渐变色
QLinearGradient linear(QPointF(0, 0), QPointF(100, 100));
linear.setColorAt(0, QColor(68, 217, 196,255));
linear.setColorAt(1, QColor(68, 217, 196,20));
// 设置显示模式
linear.setSpread(QGradient::PadSpread);
// 设置画刷填充
painter.setBrush(linear);
painter.setPen(QPen(QColor(255, 255, 255,0), 1));
//定义四个点
QPointF points[4] =
{
QPointF(0,0),
QPointF(100,100),
QPointF(0,100),
QPointF(200,0)
};
//使用四个点绘制多边形
painter.drawPolygon(points, 4);
// 设置画笔颜色、宽度
painter.setPen(QPen(QColor(255, 255, 255), 1));
// 绘制椭圆
painter.drawEllipse(QPointF(point_move_comp1.x(),comp1_y), 7, 7);
// 设置画刷颜色
painter.setBrush(QColor(255, 255, 255));
// 绘制圆
painter.drawEllipse(QPointF(point_move_comp1.x(),comp1_y), 7, 7);