本文整理汇总了C++中QwtPlotItem::updateScaleDiv方法的典型用法代码示例。如果您正苦于以下问题:C++ QwtPlotItem::updateScaleDiv方法的具体用法?C++ QwtPlotItem::updateScaleDiv怎么用?C++ QwtPlotItem::updateScaleDiv使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QwtPlotItem
的用法示例。
在下文中一共展示了QwtPlotItem::updateScaleDiv方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateAxes
//! Rebuild the scales and maps
void QwtPlot::updateAxes()
{
// Find bounding interval of the item data
// for all axes, where autoscaling is enabled
QwtDoubleInterval intv[axisCnt];
const QwtPlotItemList& itmList = itemList();
QwtPlotItemIterator it;
for ( it = itmList.begin(); it != itmList.end(); ++it )
{
const QwtPlotItem *item = *it;
if ( !item->testItemAttribute(QwtPlotItem::AutoScale) )
continue;
if ( axisAutoScale(item->xAxis()) || axisAutoScale(item->yAxis()) )
{
const QwtDoubleRect rect = item->boundingRect();
intv[item->xAxis()] |= QwtDoubleInterval(rect.left(), rect.right());
intv[item->yAxis()] |= QwtDoubleInterval(rect.top(), rect.bottom());
}
}
// Adjust scales
for (int axisId = 0; axisId < axisCnt; axisId++)
{
AxisData &d = *d_axisData[axisId];
double minValue = d.minValue;
double maxValue = d.maxValue;
double stepSize = d.stepSize;
if ( d.doAutoScale && intv[axisId].isValid() )
{
d.scaleDiv.invalidate();
minValue = intv[axisId].minValue();
maxValue = intv[axisId].maxValue();
d.scaleEngine->autoScale(d.maxMajor,
minValue, maxValue, stepSize);
}
if ( !d.scaleDiv.isValid() )
{
d.scaleDiv = d.scaleEngine->divideScale(
minValue, maxValue,
d.maxMajor, d.maxMinor, stepSize);
}
QwtScaleWidget *scaleWidget = axisWidget(axisId);
scaleWidget->setScaleDiv(
d.scaleEngine->transformation(), d.scaleDiv);
int startDist, endDist;
scaleWidget->getBorderDistHint(startDist, endDist);
scaleWidget->setBorderDist(startDist, endDist);
}
for ( it = itmList.begin(); it != itmList.end(); ++it )
{
QwtPlotItem *item = *it;
item->updateScaleDiv( *axisScaleDiv(item->xAxis()),
*axisScaleDiv(item->yAxis()));
}
}