msg.setIcon(QMessageBox::Critical);
msg.setText(QObject::tr("Syntaxfehler Dateiname!"));
msg.setInformativeText("Beispiel-Dateiname der Firmware: Test.bin/axf");
msg.setWindowFlags(Qt::SubWindow);
msg.exec();
Mit \r\n kann ich ja einen Zeilenumbruch erzwingen, ist aber im setInformativeText nicht vorhanden. Warum kommt trotzdem ein Zeilenumbruch (siehe Bild) und wie kann ich diesen Unterdrücken?
Die Anzeige geschieht recht sicher durch ein QLabel. Da die Größe der Box nicht den Inhalt abschneiden soll, ist dort wordWrap auf true gestellt.
Du hast also keine Chance, den Wrap abzustellen. Außer du gehst mit FontMetrics und anderen Hacks der Geometry der MessageBox an die Wäsche. Ich würds lassen.
BTW: QLabel kann RichText, für Zeilenumbrüche nimm deshalb ein "<br>".
TK hat geschrieben:setInformativeText nimmt nur QString.
void setInformativeText ( const QString & text )
Wie soll ich das <br> einbringen? So?
Das mit dem <br> stand unter "BTW", was mit dem eigentlichen Problem nichts mehr zu tun hatte. Ich hab das nur erwähnt, dass du für ein QLabel (oder auch QTextEdit usw) nicht auf plattformspezifische newlines setzen sollst, wenn RichText geht!
Ich würde es lassen, den Newline selber hinzubiegen (also über ein msgBox->resize(); bis es bei dir passt). Anderes DE, anderer Style, ein paar Hacks im Style (siehe Bespin "MessageBox-Hack"), anderer Font und deine MsgBox schaut wieder nach Müll aus.