I can confirm it is so because I only had one qDebug() call in the reimplementation of resizeEvent() for that instance.
This is not confirming anything.
And you don't have "implementation" for an instance - you have an instance of implementation.
The question is not how many classes you have with this code, but how many *objects* of this class are instantiated!
Its a VERY different thing!
My guess is that you have 3 objects of this class - OR - that resize events are being generated implicitly by some actions you are doing, of you which you are not even aware that they are generating resiteEvents...
I might be wrong of course, but I would first go on this path than to think that Qt calls resizeEvent() 3 times.
One easy test is to write a hello world app, with one widget, and see how many times resiteEvent() is being called.
If its only once, then its your code that does the difference, and that is the result I would expect.

I didn't mean to insult Qt,
Don't worry, none of us is emotional (at least not in that way) about Qt.
Its not about being insulted, just about what is more feasible.

To the rest of what you wrote about the font size:
you can't set a font size unit as %. Point, ems and pixels will all take the same space regardless of the parent's size.
Not sure what you mean by that.
Font scalability is not something I am an expert of, by from what I know, using point size makes your text non scalable (which I guess is what is forcing you to "scale" it your self).
At any rate, the resolution is usually not something that changes, but is more a device property.
So I'd do the font sizing once when the application starts and not for every resize, since I don't think the resolution will change much from when you started the application - or does it in your case??
AND - I think with a bit more thought and research your problem can well be solved with "normal" methods, you are not the first person to fit text in a tight screen.
But, I could very well be wrong on that too.