我想增加 QPlainTextEdit 中段落(文本块)之间的间距,但无济于事。经过实验,我发现虽然一些格式属性(例如,背景颜色)生效,但其他的(例如,边距)被忽略了。
我发现了这个错误报告,但它只提到了QTextBlockFormat::lineHeight()
。就我而言,几乎所有的方法QTextBlockFormat::*
都被忽略了。一个最小的例子:
#include <QtWidgets>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QPlainTextEdit te;
te.setPlainText("block1\nblock2\nblock3");
QTextCursor cursor = te.textCursor();
cursor.select(QTextCursor::Document);
QTextBlockFormat fmt;
fmt.setBackground(QColor(Qt::yellow));
fmt.setBottomMargin(600);
fmt.setIndent(20);
fmt.setTopMargin(600);
fmt.setLeftMargin(40);
cursor.setBlockFormat(fmt);
te.show();
return a.exec();
}
除了fmt.setBackground(QColor(Qt::yellow))
,其他的都被忽略了。使用 Qt 5.10。