Ok hab das Problem gelöst
Hab mir einfach eine Schleife gebaut die Solange minimiert wird bis die gewüschte Zeichenanzahl ereicht wurde die es nicht überschreiten soll und das
erste Leerzeichen vor der gewünschte Länge nimmt.
int i, s;
for(i = text.indexOf(" ",23), s > 23; i--)
s = text.indexOf(" ", i)
qDebug()<<"gekürzter String mit Umbruch: "<< text.replace(s,1,"\n"); //Dies ist ein langer text\nder über den Rand hinaus geht