0

I've to output few points in an interactively selected region of an image. I'm not familiar with PyQt to select the appropriate elements for the task. Please suggest the right way to do it. Currently, this is what I intend to do :

  1. Load the image.

    Use QImage (QPixMap?) to display the image.

  2. Select a rectangular region in the image.

    Use QRubberBand to select the region.

  3. Draw a grid in the region.

    Use QLines?

  4. Make the grid points (interesctions) selectable.

    No idea.

Any pointers to snippets using the required classes will be greatly helpful. Thanks !

4

1 回答 1

1

使用QGraphicsSceneQGraphicsView显示您的场景。

  1. 用于scene->addPixmap添加图像。
  2. 如您所说,使用QRubberBand选择区域。
  3. 用于view->mapToScene将获得的视口坐标转换QRubberBand为场景坐标。
  4. 使用添加行scene->addLine
  5. 使用 . 将小圆圈项目添加到线交点scene->addEllipse。此函数返回QGraphicsEllipseItem*对象。您应该使用以 (0, 0) 为中心的圆圈。用于item->setPos将每个圆圈移动到适当的位置。
  6. 用于item->setFlag(QGraphicsItem::ItemIsSelectable)使圆形项目可选择。您现在可以通过鼠标单击来选择项目。
  7. view->dragMode(QGraphicsView::RubberBandDrag)如果要使用自动启用项目选择,请使用QRubberBand
  8. 用于QGraphicsScene::selectedItems获取所选项目。然后您可以使用item->pos()来获取项目位置。
于 2013-07-07T09:44:19.703 回答