2

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

我在 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();

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

4

1 回答 1

2

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

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

于 2012-10-03T20:01:49.573 回答