一、QCustomPlot图例设置
ui.plot_->legend->setVisible(true); //设置可见
ui.plot_->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignTop | Qt::AlignRight);//设置位置
ui.plot_->graph(i)->setName(“小笨蛋”); //设置图例名字
ui.plot_->legend->addElement(i, 0, ui.plot_->legend->item(i)); //设置图例的排版位置
以下代码设置图例如图所示
int graph_count = ui.plot_->graphCount();
for (int i = 0; i < graph_count; ++i)
{
if (i>=graph_count/2)
{
ui.plot_->legend->addElement(i-5, 1, ui.plot_->legend->item(i));
}
else
{
ui.plot_->legend->addElement(i, 0, ui.plot_->legend->item(i));
}
}
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwUjN5ADOzUTM1ITNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
二、QCustomPlot图例设置与选中图同步
//先连接选中线条信号
connect(ui.switch_plot_, SIGNAL(selectionChangedByUser()), this, SLOT(SelectionSwitchChangedSlot()));
//槽函数
void DataRetrieval::SelectionSwitchChangedSlot()
{
for (int i = 0; i < ui.switch_plot_->graphCount(); ++i)
{
//获取图例
QCPPlottableLegendItem *item = ui.switch_plot_->legend->itemWithPlottable(ui.switch_plot_->graph(i));
if (ui.switch_plot_->graph(i)->selected()) //线条选中
{
item->setSelected(true);
}
else
{
item->setSelected(false);
}
}
}