c++ - 隐藏自定义 QwtSymbol 的边界矩形
问题描述
我有一个派生自 QwtSymbol 的类,符号类型是 pixmap。在像素图上,我画了一个省略号,但是,当带有自定义符号的曲线与另一条曲线(带有标准符号)发生碰撞时,自定义符号会剪切另一条曲线的符号区域。
自定义符号仅在与边界矩形碰撞的地方剪辑其他符号。
CSymbol::CSymbol()
: QwtSymbol(QwtSymbol::Pixmap)
, ellipsis(142, 142, 142)
{
QPixmap pixmap(QIcon(":/App/Resources/Ellipsis.png").pixmap(QSize(12, 12)));
QPainter* painter = new QPainter(&pixmap);
QwtPainter qwtPainter;
QPen pen(ellipsis);
pen.setWidth(1);
painter->setRenderHint(QPainter::Antialiasing);
painter->setClipping(false);
painter->setPen(pen);
auto size = QRectF(1, 1, 10, 10);
qwtPainter.drawEllipse(painter, size);
painter->end();
setPixmap(pixmap);
setPinPoint(QPoint(0, 0), true);
如何隐藏自定义符号的边界矩形,使其不会夹住覆盖的东西?
解决方案
解决方案非常简单,我刚刚对输入像素图应用了 alpha 混合,然后绘制了省略号。
推荐阅读
- java - Java Spring Boot @Autowired 值为空
- python - 如何通过大字典中的随机样本创建子字典
- javascript - 我不断收到“TypeError:未定义不是对象”错误消息
- python - 使用 requests_html 进行网页抓取,但它说缺少铬文件
- javascript - 如何找到通过 google sheet api 创建的所有 google 电子表格
- python - 如何cron python函数
- visual-studio - 新手尝试使用 Microsoft Visual Studio 2019 安装程序项目扩展
- c# - 如何将包含 Texture2D 的 UnityEngine.Object[] 转换为 Texture2D[]
- javascript - 如何在浏览器上查看我的网站中的 jasmine 测试输出
- excel - InStr 没有找到子字符串/它是否在搜索整个字符串?