有没有办法为我添加到QAbstractSeries中的一些QChart排序z索引?QChart似乎是在内部完成这一任务。
发布于 2018-03-12 12:37:14
发布于 2020-08-06 14:46:46
Zlevel由QtCharts::ChartItem设置,存储在QtCharts::ChartPresenter中,隐藏在QtChart的私有部分。我们可以通过应用findChild()方法来达到这个目的。
ChartPresenter有一个获取其项的方法,但是您需要知道如何区分它们(因为名称分配给了一个系列)。为此,我使用了不透明属性。请记住,当分配一个新的z级别的时,场景可能会更低(例如,图例)。
void AppDispatcher::setZLevel(QtCharts::QXYSeries *series)
{
QtCharts::ChartPresenter* present = series->chart()->findChild<QtCharts::ChartPresenter*>();
Q_ASSERT(present);
QList<QtCharts::ChartItem *> items = present->chartItems();
for(QtCharts::ChartItem * item : items){
if(item->opacity() == 0.99) { item->setZValue(QtCharts::ChartPresenter::ZValues::SeriesZValue+3); item->setOpacity(1); }
if(item->opacity() == 0.98) { item->setZValue(QtCharts::ChartPresenter::ZValues::SeriesZValue+2); item->setOpacity(1); }
if(item->opacity() == 0.97) { item->setZValue(QtCharts::ChartPresenter::ZValues::SeriesZValue+1); item->setOpacity(1); }
}
}https://stackoverflow.com/questions/42051493
复制相似问题