1

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

4

1 に答える 1