【问题标题】:How to draw a QPixmap with rounded corners?如何绘制圆角的 QPixmap?
【发布时间】:2014-06-13 13:52:04
【问题描述】:

我继承自 QGraphicsPolygonItem 并想在项目顶部绘制 QPixmap。项目本身和像素图应该用圆角绘制。

你会怎么做?

【问题讨论】:

  • 在咨询了 Meta * 之后,我重新考虑结束这个问题,基于以下讨论:meta.*.com/questions/250204/…,尽管我同意 @DominikSelzer 的观点,这应该是一个简单的谷歌搜索。跨度>
  • 提到的答案是从 2011 年开始的,这个答案在过去的半小时内得到了证明。
  • Dominic,我并不认为我的答案不同。我想要的只是分享这个资源上找不到的问题的简短、明确和实际的答案。另外,如果您在第一次点击时就找到了答案,那么可能是因为您已经知道这个问题了?我在不同的领域工作,目前这个问题并不明显。无论如何,如果版主认为这个问题不好,那么总是有可能删除它。
  • 很高兴您找到了问题的答案。我们都在这里学习和帮助。但是,当发布与 SO 上已经存在的问题或其他知名资源的重复问题极其相关的问题时,我必须温和地表示不同意。另一点是,至少我认为(而且我可能有偏见)在阅读 API(如何使用画笔)时甚至可以回答这个问题。
  • @DominikSelzer IMO 我认为“它在文档中”本身并不是结束问题的好理由。我们有一个2.7k point question on JavaScript's "use strict",它也可以在 JS 文档中找到。如果它“与已经在 SO 上的问题极其相关”,则将其标记为重复。

标签: qt qpainter qpixmap


【解决方案1】:

如果你想用圆角绘制 QPixmap,那么在绘画事件中从 QPixmap 创建 QBrush 并将其应用到画家:

painter->setRenderHint(QPainter::Antialiasing, true);
QBrush brush = QBrush(pixmap);
painter->setBrush(brush);
painter->drawRoundedRect(polygon().boundingRect(), 5, 5);

【讨论】:

  • 你为什么要问一个你立即回答并且显然知道答案的问题?
  • 将您的答案标记为适当的答案。你会得到积分。但这是不公平的。
  • @DominikSelzer 实际上是it is allowed and encouraged
  • 我认为不鼓励在使用 google 时发布问题/答案组合作为第一击。我认为鼓励首先寻找答案。 qtcentral 已经记录了答案(请参阅我对问题的评论)。此外,即使在 SO 上,这个问题已经有一个非常相关的答案 (*.com/questions/6507511/…)。
  • @Merlin069:我认为总体趋势似乎在 Stack Overflow 上,如果信息有用,那没关系,因为网站的主要人员是关于构建知识的,而相应的人员只是次要的。