Thanks for the tip. LegendItem was a bit awkward for my needs, but reading through its source code let me figure out how it worked (at least a little bit), and GraphicsWidgetAnchor subclass and anchor() was the secret I was missing. Turns out LabelItem already subclassed
GraphicsWidgetAnchor, and it was easier to use than LegendItem for my use case. So all I needed to do was call anchor() on a LabelItem.
I threw this code in near the end of examples/Legend.py as a proof of concept and it did exactly what I wanted:
label = pg.LabelItem("Error", size="36pt", color="FF0000")
label.setParentItem(win.graphicsItem())
label.anchor(itemPos=(0.5,0.5), parentPos=(0.5,0.5))
Thanks for your help!
Jeff