我有一些代码,我在其中绘制符号并将其附加到绘图中。现在我想知道是否有一个使用符号自动创建的边界矩形,以便我可以编写一些代码来选择符号,以便用户可以编辑它 - 例如选择它以删除它。
我在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();
符号在别处定义。提前谢谢。
答案 0 :(得分:2)
boundingRect函数返回一个足够大的矩形,使得系列的所有点都适合它。这是自动缩放所必需的,绝对不是你想要的。你想要的是焦点或选择指标。您可以查看qwt附带的event_filter
示例。在那里可以选择和移动点/标记。
qwt示例directoy可以在qwt的基本目录中找到(至少在Windows上),例如qwt-6.0\examples
。二进制文件位于qwt-6.0\examples\bin
。查看INSTALL
文件,了解如何构建二进制文件。