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 を使用しています。