本文整理汇总了C++中PlotCurve::type方法的典型用法代码示例。如果您正苦于以下问题:C++ PlotCurve::type方法的具体用法?C++ PlotCurve::type怎么用?C++ PlotCurve::type使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlotCurve
的用法示例。
在下文中一共展示了PlotCurve::type方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: showCurveBtn
void CurvesDialog::showCurveBtn(int)
{
QwtPlotItem *it = d_graph->plotItem(contents->currentRow());
if (!it)
return;
if (it->rtti() == QwtPlotItem::Rtti_PlotSpectrogram)
{
btnEditFunction->setEnabled(false);
btnAssociations->setEnabled(false);
btnRange->setEnabled(false);
return;
}
PlotCurve *c = (PlotCurve *)it;
if (c->type() == Graph::Function)
{
btnEditFunction->setEnabled(true);
btnAssociations->setEnabled(false);
btnRange->setEnabled(false);
return;
}
btnAssociations->setEnabled(true);
btnRange->setEnabled(true);
if (c->type() == Graph::ErrorBars)
btnRange->setEnabled(false);
}
示例2: setDataCurve
void Fit::setDataCurve(int curve, double start, double end) {
if (!d_graph)
return;
if (d_n > 0)
delete[] d_w;
Filter::setDataCurve(curve, start, end);
d_w = new double[d_n];
PlotCurve *plotCurve = dynamic_cast<PlotCurve *>(d_curve);
DataCurve *dataCurve = dynamic_cast<DataCurve *>(d_curve);
// if it is a DataCurve (coming from a Table)
if (plotCurve && dataCurve && plotCurve->type() != GraphOptions::Function) {
QList<DataCurve *> lst = dataCurve->errorBarsList();
foreach (DataCurve *c, lst) {
QwtErrorPlotCurve *er = dynamic_cast<QwtErrorPlotCurve *>(c);
if (er && !er->xErrors()) {
d_weighting = Instrumental;
for (int i = 0; i < d_n; i++)
d_w[i] = er->errorValue(i); // d_w are equal to the error bar values
weighting_dataset = er->title().text();
return;
}
}
示例3: parse
QString LegendWidget::parse(const QString& str)
{
QString s = str;
s.remove(QRegExp("\\l(*)", Qt::CaseSensitive, QRegExp::Wildcard));
s.remove(QRegExp("\\p{*}", Qt::CaseSensitive, QRegExp::Wildcard));
QString aux = str;
while (aux.contains(QRegExp("%(*)", Qt::CaseInsensitive, QRegExp::Wildcard))){//curve name specification
int pos = str.indexOf("%(", 0, Qt::CaseInsensitive);
int pos2 = str.indexOf(")", pos, Qt::CaseInsensitive);
QString spec = str.mid(pos + 2, pos2 - pos - 2);
QStringList lst = spec.split(",");
if (!lst.isEmpty()){
int cv = lst[0].toInt() - 1;
if (d_plot && cv >= 0 && cv < d_plot->curveCount()){
PlotCurve *c = (PlotCurve *)d_plot->curve(cv);
if (c){
if (lst.count() == 1)
s = s.replace(pos, pos2-pos+1, c->title().text());
else if (lst.count() == 3 && c->type() == Graph::Pie){
Table *t = ((DataCurve *)c)->table();
int col = t->colIndex(c->title().text());
int row = lst[2].toInt() - 1;
s = s.replace(pos, pos2-pos+1, t->text(row, col));
}
}
}
aux = aux.right(aux.length() - pos2 - 1);
}
}
return s;
}
示例4: closestCurve
/**
* Returns the index of the closest curve to a point on the canvas.
* Also returns index of the nearest data point on that curve.
* @param xpos :: x coordinate of a point on the canvas in pixels.
* @param ypos :: y coordinate of a point on the canvas in pixels.
* @param dist :: ?
* @param point :: Output index of the nearest data point to the point with coordinates (xpos,ypos)
*/
int Plot::closestCurve(int xpos, int ypos, int &dist, int &point)
{
QwtScaleMap map[QwtPlot::axisCnt];
for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ )
map[axis] = canvasMap(axis);
double dmin = std::numeric_limits<double>::max();
int key = -1;
for (QMap<int, QwtPlotItem *>::iterator iter = d_curves.begin(); iter != d_curves.end(); ++iter )
{
QwtPlotItem *item = (QwtPlotItem *)iter.data();
if (!item)
continue;
if(item->rtti() != QwtPlotItem::Rtti_PlotSpectrogram)
{
PlotCurve *c = (PlotCurve *)item;
DataCurve *dc = dynamic_cast<DataCurve *>(item);
if (dc)
{
if (c->type() != Graph::Function && dc->hasLabels() &&
dc->selectedLabels(QPoint(xpos, ypos))){
dist = 0;
return iter.key();
} else
dc->setLabelsSelected(false);
}
for (int i=0; i<c->dataSize(); i++)
{
double cx = map[c->xAxis()].xTransform(c->x(i)) - double(xpos);
double cy = map[c->yAxis()].xTransform(c->y(i)) - double(ypos);
double f = qwtSqr(cx) + qwtSqr(cy);
if (f < dmin && c->type() != Graph::ErrorBars)
{
dmin = f;
key = iter.key();
point = i;
}
}
}
}
dist = static_cast<int>(sqrt(dmin));
return key;
}
示例5: symbolsMaxWidth
int LegendWidget::symbolsMaxWidth()
{
QList<int> cvs = d_plot->curveKeys();
int curves = cvs.count();
if (!curves)
return 0;
// RJT (22/09/09): For rest of method, copied in code from current
// QtiPlot (rev. 1373) to fix infinite loop if closing bracket missing
int maxL = 0;
QString text = d_text->text();
QStringList titles = text.split("\n", QString::KeepEmptyParts);
for (int i=0; i<(int)titles.count(); i++){
QString s = titles[i];
while (s.contains("\\l(",Qt::CaseInsensitive)){
int pos = s.indexOf("\\l(", 0,Qt::CaseInsensitive);
int pos1 = s.indexOf("(", pos);
int pos2 = s.indexOf(")", pos1);
int pos3 = s.indexOf(",",pos1);
if (pos3 != -1 && pos3 < pos2 ) pos2=pos3; // for pi charts get dataset number
if (pos2 == -1){
s = s.right(s.length() - pos1 - 1);
continue;
}
int point = 0;
PlotCurve* c = getCurve(s.mid(pos1 + 1, pos2 - pos1 - 1), point);
if (c && c->type() == Graph::Pie){
maxL = 2*d_text->font().pointSize();//10;
line_length = 0;
s = s.right(s.length() - pos2 - 1);
continue;
}
if (c && c->rtti() != QwtPlotItem::Rtti_PlotSpectrogram) {
if (c->type() == Graph::Pie ||
c->type() == Graph::VerticalBars ||
c->type() == Graph::HorizontalBars ||
c->type() == Graph::Histogram ||
c->type() == Graph::Box){
maxL = 2*d_text->font().pointSize();//10;
line_length = 0;
} else {
int l = c->symbol().size().width();
if (l < 3)
l = 3;
else if (l > 15)
l = 15;
if (l>maxL && c->symbol().style() != QwtSymbol::NoSymbol)
maxL = l;
}
}
s = s.right(s.length() - pos2 - 1);
}
if (titles[i].contains("\\p{")){ // old syntax for pie charts
maxL = 2*d_text->font().pointSize();//10;
line_length = 0;
}
}
return maxL;
}