首页 > 解决方案 > 如何在 qtcharview 内部绘图?

问题描述

我已经设法在 qchartview 顶部画了一些线,如果没有调整窗口大小,它是可以接受的。但是,当我调整大小时,线条不会缩放,如下所示。

在此处输入图像描述

如何绘制一条垂直线,使其受当前窗口矩形的约束并在调整窗口大小时进行调整?

void ChartView::mousePressEvent(QMouseEvent *event)
    {
        if (m_isTouching)
            return;

        if( event->modifiers() & Qt::ShiftModifier )
        {

            qreal xVal = chart()->mapToValue(event->pos()).x();
            qreal yVal = chart()->mapToValue(event->pos()).y();


            QGraphicsLineItem* linex = this->scene()->addLine(0+xVal,50,0+xVal,500);
                line.push_back(linex);
                line.back()->setFlag(QGraphicsItem::ItemIsMovable);
        }

        if( event->modifiers() & Qt::ControlModifier)
        {
            for(auto& item : line)
            {
                if(this->scene() != NULL )
                {
                    this->scene()->removeItem(item);
                }
            }
        }

        QChartView::mousePressEvent(event);

    }

标签: qt

解决方案


推荐阅读