It is usually never a good idea to place widgets at fixed locations. What happens when the user decides to resize the window? All of your labels are locked in position relative to the top left corner of the parent widget, so they won't move and will now be in the wrong places. Because you create them without storing their pointers anywhere (except as children of the parent widget), it is difficult to retrieve them and move them to the correct positions.

If this was my problem, I would make a custom QWidget with a paintEvent method. In the paintEvent, you calculate the positions of where your labels should be based on the current size of the widget, and draw them using QPainter::drawText(). Don't use QLabels as child widgets at all. If you use this custom QWidget correctly and put it inside of a layout, it will be resized (and repainted) automatically when the size changes. Simply store your vector of text locations as a member variable of this class, and add a slot to update it when the user changes the labels.