天天看点

QCustomPlot图例

一、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));
	}
}
           
QCustomPlot图例

二、QCustomPlot图例设置与选中图同步

QCustomPlot图例
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);
		}
	}
}