Gibt es eine Möglichkeit, Zeilenumbrüche im Text einer QMessageBox auf <br>
zu beschränken? I.e. keine Auto-Linebreaks irgendwo anders? So etwas wie msgBox.setAutoLinebreaks(False)
wäre schön ...QMessageBox Auto-Zeilenumbrüche vermeiden
0
A
Antwort
1
Wenn Sie wirklich wollen, können Sie diesen schmutzigen Hack verwenden, es zu tun:
QMessageBox msgBox;
QString loremIpsum = "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.";
loremIpsum.replace(" ", " ");
msgBox.setText(loremIpsum);
msgBox.setTextFormat(Qt::RichText);
msgBox.exec();
Aber die Größe des Nachrichtenfelds ist nach wie vor durch eine interne Logik beschränkt, Es wird also einfach nicht den Rest der Zeile anzeigen, wenn es nicht passt. Auf meinem System ist dies bei "ab ill" abgeschnitten. Beachten Sie, dass der automatische Unterbrechungsalgorithmus nicht nur bei Leerzeichen (nicht sicher darüber) unterbrochen werden kann, sodass Sie möglicherweise nichtbrechende Bindestriche oder etwas mehr verwenden müssen. Ich würde es nicht wagen, dies als generische Lösung zu verwenden, aber es könnte für einen bestimmten Fall verwendet werden.
Verwandte Themen
- 1. HTML in QMessageBox
- 2. QMessageBox; Button Layouts
- 3. QMessageBox löschen beim Schließen
- 4. Wie benutzerdefiniertes Bild auf QMessageBox
- 5. Ja/Nein-Meldungsfeld mit QMessageBox
- 6. QMessageBox Sie können Text von
- 7. Python PyQt5 QMessageBox öffnet nicht
- 8. QMessageBox mit Link innerhalb, kann nicht klicken
- 9. QMessagebox nicht anzeigen, wenn Anruf anzeigen()
- 10. PyQt5: Klärung connect() -Methode in QMessageBox standardButtons
- 11. Wie man Variablenwert in Qt QMessageBox hinzufügt?
- 12. Qt Mainwindow Exits nach QMessageBox geschlossen ist
- 13. Eine QMessageBox von einem QThread anzeigen
- 14. QMessageBox in initializeGL ruft initializeGL einen weiteres Mal
- 15. Wie kann ich die Größe von QMessageBox ändern?
- 16. Titel: Qt: Wie übersetzt man die Tasten in qmessagebox?
- 17. Wie mache ich eine nicht-blockierende, nicht-modale QMessageBox?
- 18. Wie bekomme ich Zugriff auf eine QMessageBox von QTest
- 19. Größe eines QWebView und einer QMessagebox entsprechend der QMainWindow Größe
- 20. So ändern Sie die Reihenfolge der Schaltflächen in QMessageBox
- 21. So fügen Sie QLineEdit zu QMessageBox hinzu PyQt5
- 22. Rekursion vermeiden
- 23. Vermeiden Newline in qDebug()
- 24. Vermeiden Sie CSS Vererbung
- 25. Python: Vermeiden Sie Kurzschlussauswertung
- 26. Vermeiden von TreeMap ConcurrentModificationException?
- 27. LaTeX: Neuen Absatz vermeiden?
- 28. Cursor in SQL vermeiden
- 29. Vermeiden NoSuchElementException mit Strom
- 30. Vermeiden Anbringen Ereignis wieder
Eine Nachrichtenbox sollte wahrscheinlich Zeilen unterbrechen, wenn der Text das Ende der Box erreicht, wenn nicht, werden sie außerhalb der Box überlaufen. Docs sagt, dass "Der Text wird als ein einfacher Text interpretiert werden.", IE, '
' sollte als "
" gedruckt werden, und Ihre eigenen Pausen sollten wahrscheinlich "\ n" statt "
" sein. – Jite
Das 'textFormat' ist standardmäßig auf AutoText eingestellt und interpretiert '
' als Zeilenumbrüche (sollte nicht mit '\ n' gemischt werden!). Das funktioniert gut, aber die Breite der 'QMessageBox' sollte einstellbar sein oder ist das sowieso behoben? –