Qt文字描边(基础篇)
- 创业
- 2025-07-21 19:12:20

项目中有时需要文字描边的功能
1.基础的绘制文字使用drawtext处理
void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); painter.setRenderHint(QPainter::SmoothPixmapTransform, true); painter.setRenderHints(QPainter::TextAntialiasing, true); QPen pen = painter.pen(); QString m_textString = "文本God123"; pen.setWidth(1); pen.setColor(QColor(255, 0, 0)); painter.setPen(pen); painter.setBrush(QColor(255, 0, 0)); //绘制白芯文字,注意文字的位置点设置 painter.drawText(100,100,m_textString); } 2.绘制黑边黄字代码:
void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); painter.setRenderHint(QPainter::SmoothPixmapTransform, true); painter.setRenderHints(QPainter::TextAntialiasing, true); QPen pen = painter.pen(); QString m_textString = "文本God123"; QPainterPath path; //注意文字的位置点设置 path.addText(100,200,painter.font(), m_textString); pen.setWidth(2); pen.setColor(QColor(0, 0, 0)); painter.setPen(pen); // painter.setBrush(QColor(255, 255, 0)); //绘制黑边 painter.drawPath(path); } 3.只绘制黑边 void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); painter.setRenderHint(QPainter::SmoothPixmapTransform, true); painter.setRenderHints(QPainter::TextAntialiasing, true); QPen pen = painter.pen(); QString m_textString = "文本God123"; QPainterPath path; //注意文字的位置点设置 path.addText(100,200,painter.font(), m_textString); pen.setWidth(2); pen.setColor(QColor(0, 0, 0)); painter.setPen(pen); // //painter.setBrush(QColor(255, 255, 0)); //绘制黑边 painter.drawPath(path); } 4.绘制黑边红字(另一种方法) void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, true); painter.setRenderHint(QPainter::SmoothPixmapTransform, true); painter.setRenderHints(QPainter::TextAntialiasing, true); QPen pen = painter.pen(); QString m_textString = "文本God123"; QPainterPath path; //注意文字的位置点设置 path.addText(100,200,painter.font(), m_textString); pen.setWidth(2); pen.setColor(QColor(0, 0, 0)); painter.setPen(pen); // //painter.setBrush(QColor(255, 255, 0)); //绘制黑边 painter.drawPath(path); pen.setWidth(1); pen.setColor(QColor(255, 0, 0)); painter.setPen(pen); painter.setBrush(QColor(255, 0, 0)); //绘制白芯文字,注意文字的位置点设置 painter.drawText(100,200,m_textString); }Qt文字描边(基础篇)由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Qt文字描边(基础篇)”