QPainter绘制文字有灰边

「已注销」 2021-02-21 10:00:13
利用QPainter将文字绘制到一张QImage上时,发现文字边缘有一点点的灰色边缘,但是在使用QWidget进行绘制时,却没有这个灰边
下面是我期待的效果

但是这是绘制后的实际效果

请解答一下怎么解决这个问题
...全文
313 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2021-02-22
  • 打赏
  • 举报
回复
最后发现了问题所在,楼上的回答与原因不符合,我认为这是Qt的一个bug,原因是我将QImage转化为QPixmap再进行绘制以后的话,就没有出现这个问题了
qzjhjxj 2021-02-21
  • 打赏
  • 举报
回复
参考下这篇文章:https://blog.csdn.net/yejin_tianming/article/details/105113668?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161388220216780269875918%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161388220216780269875918&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-105113668.pc_search_result_cache&utm_term=setCompositionMode 试试,供参考:
QPainter painter(&m_canvasImage);
    painter.setRenderHints(QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform);
    painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);//图片叠加模式
    painter.setBrush(Qt::NoBrush);
    painter.setFont(item->font());
    painter.setPen(QPen(QColor(Qt::red)));
    QRect textRect(rect);
    painter.drawText(textRect,"这是测试的文字");
「已注销」 2021-02-21
  • 打赏
  • 举报
回复
这是我使用的代码

QPainter painter(&m_canvasImage);
    painter.setRenderHints(QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform);
    painter.setBrush(Qt::NoBrush);
    painter.setFont(item->font());
    painter.setPen(QPen(QColor(Qt::red)));
    QRect textRect(rect);
    painter.drawText(textRect,"这是测试的文字");

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧