【发布时间】:2017-05-15 20:11:59
【问题描述】:
我有一个QStringList (m_NameList),其中包含 4 个元素。对于每个字符串,我创建一个QwtPlotCurve (QMap < QString, QwtPlotCurve*> m_NamePlotC;) 并为每个 plotCurve 设置不同的 Pen:
for(unsigned int i= 0; i< m_NameList.count(); ++i)
{
QwtText title(m_NameList.at(i));
title.setFont(fontNormal);
m_NamePlotC[m_NameList.at(i)]= new QwtPlotCurve();
m_NamePlotC[m_NameList.at(i)]->setTitle(title);
if(i== 0)
{
m_NamePlotC[m_NameList.at(i)]->setPen(QPen(Qt::green, 1, Qt::DashLine));
}
else if(i== 1)
{
m_NamePlotC[m_NameList.at(i)]->setPen(QPen(Qt::blue, 1, Qt::DashLine));
}
else if(i== 2)
{
m_NamePlotC[m_NameList.at(i)]->setPen(QPen(Qt::cyan, 1, Qt::DashLine));
}
else if(i== 3)
{
m_NamePlotC[m_NameList.at(i)]->setPen(QPen(Qt::yellow, 1, Qt::DashLine));
}
m_NamePlotC[m_NameList.at(i)]->setRenderHint(QwtPlotItem::RenderAntialiased, true);
m_NamePlotC[m_NameList.at(i)]->setCurveAttribute(QwtPlotCurve::Fitted);
}
我的问题是摆脱if-statements。有没有什么创造性的方法可以让我根据QStringList中每个元素的不同颜色的QStringList元素的数量动态设置笔,而不使用ifs?
谢谢!
【问题讨论】: