QMessageBox 避免自动换行

QMessageBox avoid auto linebreaks

有没有办法将 QMessageBox 文本中的换行符限制在出现 <br> 的地方? IE。其他地方没有自动换行符?像 msgBox.setAutoLinebreaks(False) 这样的东西会很好...

如果你真的想要,你可以使用这个肮脏的黑客来做到这一点:

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(" ", "&nbsp;");
msgBox.setText(loremIpsum);
msgBox.setTextFormat(Qt::RichText);
msgBox.exec();

但是消息框的大小仍然受到一些内部逻辑的限制,所以如果它不适合它就不会显示该行的其余部分。在我的系统上,这被截断为“ab ill”。请注意,自动中断算法可能不仅在空格处中断(对此不确定),因此您可能必须使用不中断的连字符或更多内容。我不敢将其用作通用解决方案,但它可以用于特定情况。