ok, I kinda get it now. I can just add spacers left and right and set fixed widths to get what I wanted.
Namely, 8 80x80 pixel tiles packed together and centered along the middle of the 1600px width which is the middle of the 2 videos.
[image: a76c4b24-f511-4a8e-af73-7c00637a78be.png]
this gets me what I wanted:
category_label = QLabel("Ball Flight\nDetails")
category_label.setFixedSize(200, 80)
category_label.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter)
category_label.setStyleSheet("font-weight: bold;")
self.infoGrid.addWidget(category_label, 0, 0, 1, 1)
categories = ["Club\nSpeed", "Attack\nAngle", "Spin\nRate", "Carry\nDistance", "Club\nPath", "Face\nto Path", "Side\nSpin", "Back\nSpin"]
values = [128, 15, 3000, 250, 270, 30, 200, 2500]
hSpace = QWidget();
hSpace.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.infoGrid.addWidget(hSpace, 0, 1)
row = 0
for i in range(len(categories)):
col=i+2
print(f"Adding content at {row},{col}")
tile_widget = QWidget()
tile_widget.setFixedSize(80, 80)
tile_layout = QVBoxLayout(tile_widget)
tile_layout.setContentsMargins(0,0,0,0)
tile_layout.setSpacing(0)
name_label = QLabel(categories[i])
name_label.setAlignment(Qt.AlignmentFlag.AlignCenter| Qt.AlignmentFlag.AlignBottom)
name_label.setStyleSheet("font-weight: bold; color: black;")
value_label = QLabel(str(values[i]))
value_label.setAlignment(Qt.AlignmentFlag.AlignCenter| Qt.AlignmentFlag.AlignTop)
value_label.setStyleSheet("font-weight: bold; font-size: 24px; color: white;")
tile_layout.addWidget(name_label)
tile_layout.addWidget(value_label)
tile_widget.setStyleSheet("border: 1px solid lightblue; background-color: lightblue; border-radius: 10px;")
self.infoGrid.addWidget(tile_widget, 0, col, alignment=Qt.AlignmentFlag.AlignHCenter|Qt.AlignmentFlag.AlignVCenter)
hSpace = QWidget();
hSpace.setFixedWidth(470)
hSpace.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.infoGrid.addWidget(hSpace, 0, 10)