1

有没有办法在 QCustomPlot 中显示零线上的刻度和副刻度?我在文档中找不到任何东西。

4

2 回答 2

0

我必须用 QCPItemLine 创建刻度和子刻度。这是代码:

for(int i=-65; i<=65; i+=10)
{
    // Ticks
    QCPItemLine *tickHLine=new QCPItemLine(ui->customPlot);
    ui->customPlot->addItem(tickHLine);
    tickHLine->start->setCoords(i,-1);
    tickHLine->end->setCoords(i,1);
    tickHLine->setPen(QPen(QColor(137, 140, 140), 1));

    //Subticks
    QCPItemLine *subTickHLine=new QCPItemLine(ui->customPlot);
    ui->customPlot->addItem(subTickHLine);
    subTickHLine->start->setCoords(i+5,-2);
    subTickHLine->end->setCoords(i+5,2);
    subTickHLine->setPen(QPen(QColor(137, 140, 140), 1));
}
于 2014-02-03T09:40:01.193 回答
0

你可能把你的图层弄混了。确保您的网格位于轴下方的图层上,因为零线是网格的一部分,而刻度线是轴的一部分。例如:

axis->setLayer("axes");
axis->grid()->setLayer("grid");

请注意,“axes”和“grid”是默认存在的图层。通常网格已经放置在正确的图层上,所以您遇到的可能是由于清除了默认设置/绘图布局,然后在一层上创建了一个新的轴矩形。

于 2014-02-02T20:21:48.000 回答