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);
ダミーテキストを挿入せずに、エディターがフォーマットを維持する方法はありますか?
このトピックの他の質問で述べたように、エディターでスタイルシートまたはパレットを使用できません。すべてはQTextFormat
sを使用して直接行う必要があります