When a text that contains Unicode character controls (ZWJ, ZWNJ, possible RLM LRM RLE LRE etc.), the width returned by QFontMetrics::tightBoundingRect is larger than what it’s actually is, even if the script doesn’t support such scripts at all.
Example code (this is PyQt5, but I am pretty sure that the binding have nothing to do with the width):
PyQt5.QtCore.QRectF(3.0, -64.0, 91.0, 65.0)
PyQt5.QtCore.QRectF(3.0, -64.0, 113.0, 65.0)
I’ve tested this with several fonts and the width was different in all of them (for the two cases).
This was originally about Arabic script, trying to prepend/append ZNJ character to an Arabic letter. The same issue happens with that as well, although it’s a bit more complicated.