1

QTextEditユーザーが編集できる場所がありますQTextDocument

ドキュメントのデフォルトの色とフォントを設定したいのですが、ドキュメントにテキストがない場合、フォーマットは破棄されます。

これが私のコードです:

QTextDocument *d = new QTextDocument;
QTextCursor cur(d);
cur.select(QTextCursor::Document);

QTextBlockFormat f1;
f1.setBackground(Qt::black);
f1.setForeground(Qt::yellow);
cur.setBlockFormat(f1);

QTextCharFormat f2;
f2.setForeground(Qt::yellow);
QFont font("Times New Roman", 12);
f2.setFont(font);
cur.setBlockCharFormat(f2);

editor->setDocument(d);

エディターが表示されると、特定の高さの黒い背景の線が表示されます。それで、これはうまくいったようです。

ただし、入力を開始するとすぐに行のサイズが小さくなり、テキストが表示されません。入力したテキストを選択すると、黒く(黒い背景に)書かれていて、フォントが変更されていることがわかります。

カーソルを使用して空でないテキストを挿入すると、すべてが機能し、編集時にフォーマットが変更されません。

// Same as above...
cur.insertText("A");
editor->setDocument(d);

ダミーテキストを挿入せずに、エディターがフォーマットを維持する方法はありますか?

このトピックの他の質問で述べたように、エディターでスタイルシートまたはパレットを使用できません。すべてはQTextFormatsを使用して直接行う必要があります

4

1 に答える 1