隐藏自定义 QwtSymbol 的边界矩形

Hide bounding rect of a custom QwtSymbol

本文关键字:边界 自定义 QwtSymbol 隐藏      更新时间:2023-10-16

我有一个派生自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 混合应用于输入像素图,然后绘制省略号。