gpt4 book ai didi

c++ - QCPItemLine 使用图层

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:55 40 4
gpt4 key购买 nike

将 QCPItemLine 与图层一起使用的正确方法是什么?我有一个像素放大器,我用 QCustomPlot 在网格上绘制,我想在像素图上方画一条线,到目前为止它显示在像素图下方。

假设我已经设置了一个像素图,我怎么能确定该行将显示在哪里?根据文档,画线的方式是:

QCOItemLine* line = new QCOItemLine(ui->grid);

_line->start->setCoords(x_tail, y_tail);
_line->end->setCoords(x_head, y_head);

ui->widget->replot();

与特定图形或图层相关的线点不同,我该如何管理它?

这是我设置像素图的方式:

QCPItemPixamp* _pixmap;
Qimage image;
getImageData(image);

ui->grid->addLayer("map", ui->grid->layer("main));

QPixmap pixels = QPixmap::fromImage(image.scaled(ui->grid->width(),
ui->grid->height(), Qt::IgnoreAspectRatio, Qt::FastTransformation));

_pixmap->setVisible(true);
_pixmap->setScaled(true);
_pixmap->setPixmap(pixels);

_pixmap->topLeft->setCoords(left_x, bottom_y);
_pixmap->bottomRight->setCoords(right_x, top_y);

我想在这个像素图上画一条线

最佳答案

您必须为每个项目设置不同的图层,然后您可以使用moveLayer() 移动图层。

// create layers
ui->grid->addLayer("line");
ui->grid->addLayer("pixmap");

//create line
QCPItemLine* _line = new QCPItemLine(ui->grid);
_line->start->setCoords(1, 5);
_line->end->setCoords(5, 3);
//set layer
_line->setLayer("line");

//create pixmap
QCPItemPixmap *_pixmap = new QCPItemPixmap(ui->grid);
QImage image;
getImageData(image);
QPixmap pixels = QPixmap::fromImage(image.scaled(ui->grid->width(),
ui->grid->height(), Qt::IgnoreAspectRatio, Qt::FastTransformation));
_pixmap->setPixmap(pixels);
_pixmap->setVisible(true);
_pixmap->setScaled(true);
_pixmap->topLeft->setCoords(1, 5);
_pixmap->bottomRight->setCoords(5, 3);
// set layer
_pixmap->setLayer("pixmap");

// move layers
ui->grid->moveLayer(_line->layer(), _pixmap->layer(), QCustomPlot::limAbove );
ui->grid->replot();

关于c++ - QCPItemLine 使用图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51606573/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com