如何在PyQt中选择一个区域并用网格填充?

时间:2013-07-07 05:10:15

标签: python qt pyqt

我在图像的交互选择区域中输出几个点。我不熟悉PyQt来为任务选择合适的元素。请建议正确的方法。目前,这是我打算做的事情:

  1. 加载图像。

      

    使用QImage(QPixMap?)显示图像。

  2. 在图像中选择一个矩形区域。

      

    使用QRubberBand选择区域。

  3. 在区域中绘制网格。

      

    使用QLines?

  4. 使网格点(interesctions)可选。

      

    不知道。

  5. 使用所需类的任何指向片段的指针都将非常有用。谢谢!

1 个答案:

答案 0 :(得分:1)

使用QGraphicsSceneQGraphicsView显示您的场景。

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