Invert Selection

  • Hi all!

    I’m working with QT in order to create a selection path. But now I would like to invert it, like the photoshop tool you know.

    I used the subtracted method to manage to get the invert selection BUT I got only one path. I would like to splite this path into small path/polygons since I use a personal class to print the selections.

    I know the methods ToFillPolygons & ToSubpathPolygons exist but they don’t give me what I need.

    Here is few drawing to understand what I need:

    First, the selections the user do in black: First Selection

    Then, in red, the result of the subtracted method: Inverted selection

    And here is what I’m looking for: How can I get only the 2 red polygons like this

    In a perfect world I would like to get 5 polygons because I cannot deal with hole inside my polygons for the moment, I mean I cannot remove the line which connect outer and inner polygons and I have something like this: ugly result.
    Now you can understand why I cannot use ToFillPolygons & ToSubpathPolygons method which give me this following result

    Thanks for your help

  • Nobody has an idea?
    It's very important and this issue drives me crazy

  • Moderators

    You could use operator - like this:

    QPainterPath p1;
    p1.addRect(0.0, 0.0, 100.0, 150.0);
    QVector<QPointF> points;
        points << QPointF(60.0, 30.0)   << QPointF(100.0, 30.0)
               << QPointF(100.0, 90.0)  << QPointF(0.0, 90.0)
               << QPointF(0.0, 60.0)    << QPointF(60.0, 60.0)
               << QPointF(60.0, 30.0);
    QPainterPath p2;
    p2.addRect(20.0, 110.0, 60.0, 20.0);
    QPainterPath p3 = p1 - p2;

    Which gives:

  • Hii..

    Sorry to disturb you but if you are free then please give me answer of below question

    I am newbie to this Qt framework.