隐藏自定义 QwtSymbol 的边界矩形
Hide bounding rect of a custom QwtSymbol
我有一个派生自 QwtSymbol 的 class,符号类型是像素图。在像素图上,我画了一个省略号,但是,当带有自定义符号的曲线与另一条曲线(带有标准符号)发生碰撞时,自定义符号会剪切另一条曲线的符号区域。
自定义符号仅在其他符号与边界矩形发生冲突时剪裁其他符号。
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 混合,然后绘制了省略号。
我有一个派生自 QwtSymbol 的 class,符号类型是像素图。在像素图上,我画了一个省略号,但是,当带有自定义符号的曲线与另一条曲线(带有标准符号)发生碰撞时,自定义符号会剪切另一条曲线的符号区域。
自定义符号仅在其他符号与边界矩形发生冲突时剪裁其他符号。
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 混合,然后绘制了省略号。