Ein ordentlicher Compiler wird dir im ersten Beispiel die Schleife wegoptimieren. Da das anscheinend trotzdem 1-2 Sekunden dauert, wird die Schleife scheinbar doch abgearbeitet (obwohl tatsächlich nichts passiert, und der Compiler das auch sieht!).
Dass es dann 1-2 Sekunden dauert, sagt mir dass breite und hoehe ziemlich groß sein müssen. Kann es evtl. auch sein, dass du da in einen kleinen Überlauf reinkommst?
Als kleine Optimiierung (wenn der Compiler schon zu doof dafür ist

) kannst du breite*hoehe vor Eintritt in die Schleife ausrechnen und in eine unsigned int-Variable speichern. Dann sparst du dir pro Durchlauf eine Berechnung.
Und zu guter letzt: Wenn breite*hoehe tatsächlich so groß ist wie ich mir das denke, macht es absolut keinen Sinn, bei jedem Durchlauf die Progressbar zu ändern. Jedes "setValue()" resultiert in einem update() der Progressbar. Bei max-min > 200 macht mMn. eine feinere Unterteilung der Progressbar nicht so viel Sinn - wenn die Progressbar tatsächlich für einen Fortschritt benutzt wird und nich als exakter Indikator für einen bestimmten Wert (siehe z.B. aktuelle Entwicklung bei "krita". Unnötiger Rechenaufwand

Also in der Schleife die Progressbar nur aktualisieren wenn es notwendig ist. Z.B. Berechnung mit Modulo, oder eine zweite Zählvariable mitlaufen lassen und wenn die auf z.B. 100 kommt den Progress erhöhen und die Zählvariable wieder auf 0 setzen, oder sonstwas (sei kreativ

)
Ich mir ziemlich sicher, dass deine Performanceprobleme nicht bei Qt zu suchen sind.