我有一个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直接完成