网站建设听取需求,梧州红豆网梧州论坛,松江网站开发公司,微信小程序怎么创建店铺目录
问题描述
解决方案
方案1#xff1a;
方案2#xff1a;
结果示意图 问题描述
做UI的时候#xff0c;我们很多时候需要给绘制一个圆角边框#xff0c;初识Qt绘制的童鞋#xff0c;可能绘制出来的圆角边框很是锯齿#xff0c;而且粗细不均匀#xff0c;如下图
方案2
结果示意图 问题描述
做UI的时候我们很多时候需要给绘制一个圆角边框初识Qt绘制的童鞋可能绘制出来的圆角边框很是锯齿而且粗细不均匀如下图 解决方案
方案1
给目标widget添加margin且paintEvent中的绘制区域用contentsRect:
CustomWidget::NKCustomWidget(QWidget *parent): QWidget(parent)
{m_dWidth 5.0;setContentsMargins(1.0, 1.0, 1.0, 1.0);
}void CustomWidget::paintEvent(QPaintEvent *event)
{QPainter paint(this);paint.setRenderHints(QPainter::Antialiasing);QPainterPath pathBorder;QRectF rcFrame contentsRect();QRectF rcBoder rcFrame;pathBorder.addRoundedRect(rcBoder, 24, 24);QPen pen(Qt::red, m_dWidth);paint.setPen(pen);paint.drawPath(pathBorder);
}
方案2
将绘制区域缩小边框宽度的像素范围
参考代码 void NKCustomWidget::paintEvent(QPaintEvent *event)
{QPainter paint(this);paint.setRenderHints(QPainter::Antialiasing);QPainterPath pathBorder;QRectF rcFrame contentsRect();QRectF rcBoder rcFrame.marginsRemoved(QMarginsF(m_dWidth/2, m_dWidth/2, m_dWidth/2, m_dWidth/2));pathBorder.addRoundedRect(rcBoder, 24, 24);QPen pen(Qt::red, m_dWidth);paint.setPen(pen);paint.drawPath(pathBorder);
} 结果示意图