boundingRect()的工作原理

时间:2012-10-03 11:35:20

标签: c++ qwt rectangles

我有一些代码,我在其中绘制符号并将其附加到绘图中。现在我想知道是否有一个使用符号自动创建的边界矩形,以便我可以编写一些代码来选择符号,以便用户可以编辑它 - 例如选择它以删除它。

我在qwt_plot_marker.h中看到了一个boundingRect()方法,我如何使用它来确定在实现以下代码时是否创建了一个矩形?

void DataPointMarker::draw(QPainter *p, 
const QwtScaleMap &xMap, const QwtScaleMap &yMap,
const QRect &) const
{
  const int posX = xMap.transform(m_positionX);
  const int posY = yMap.transform(m_positionY);

p->save();

symbol().draw(p, posX, posY);

p->restore();

符号在别处定义。提前谢谢。

1 个答案:

答案 0 :(得分:2)

boundingRect函数返回一个足够大的矩形,使得系列的所有点都适合它。这是自动缩放所必需的,绝对不是你想要的。你想要的是焦点或选择指标。您可以查看qwt附带的event_filter示例。在那里可以选择和移动点/标记。

qwt示例directoy可以在qwt的基本目录中找到(至少在Windows上),例如qwt-6.0\examples。二进制文件位于qwt-6.0\examples\bin。查看INSTALL文件,了解如何构建二进制文件。