如何在不选择的情况下更改 QTextEdit 中的当前行格式?
那里!我想知道如何更改 QTextEdit 中的当前行格式?
在文件中我读到
“格式可以应用于 当前文本文档使用 setCharFormat(), mergeCharFormat(), setBlockFormat() 和 mergeBlockFormat() 函数。如果 光标没有选择,当前块 格式将被更改。”
但是在我的应用程序中,光标所在的当前块无法更改。我可能会错过一些东西吗?那么我如何更改没有选择的当前块格式?
这是我的代码:
QTextCursor cursor = this->textCursor();
QTextBlockFormat blockFmt;
blockFmt.setNonBreakableLines(true);
blockFmt.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysBefore);
QTextCharFormat charFmt;
charFmt.setFont(data->visualFont());
if(!cursor.hasSelection()) {
cursor.beginEditBlock();
cursor.setBlockFormat(blockFmt);
cursor.mergeBlockCharFormat(charFmt);
QTextBlock block = cursor.block();
block.setUserData(data);
cursor.endEditBlock();
}
我想要什么 为 false,我只需合并新格式以阻止字符,但这不起作用。
要做的是:如果没有选择,则更改当前行的格式。因此,如果 mouse.hasSelection( ) .endEditBlock();,但实际上,添加此后,整个块变得不可见,
那么如何更改当前没有选择的块格式?
there! I want to find out how to change current line format in QTextEdit?
In the document I read that
"Formatting can be applied to the
current text document using the
setCharFormat(), mergeCharFormat(),
setBlockFormat() and
mergeBlockFormat() functions. If the
cursor has no selection, current block
format will be changed."
But in my application, the current block in which cursor is couldn't be changed. May I miss something? Then how could I change current block format which has no selection?
Here is my code:
QTextCursor cursor = this->textCursor();
QTextBlockFormat blockFmt;
blockFmt.setNonBreakableLines(true);
blockFmt.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysBefore);
QTextCharFormat charFmt;
charFmt.setFont(data->visualFont());
if(!cursor.hasSelection()) {
cursor.beginEditBlock();
cursor.setBlockFormat(blockFmt);
cursor.mergeBlockCharFormat(charFmt);
QTextBlock block = cursor.block();
block.setUserData(data);
cursor.endEditBlock();
}
What I want to do is: change current line's format if there is no selection. So if cursor.hasSelection() is false, I just merge new format to block chars. But this does not work.
I also tried add setTextCorsor(cursor); after cursor.endEditBlock();, but it still doesn't work. In fact, after adding this, the whole block becomes invisible.
So how could I change current block format which has no selection?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请检查下面的示例是否适合您,它应该更改当前的文本块格式和字体。
希望这有帮助,问候
Pls, check if an example below would work for you, it should change the current text block format and font.
hope this helps, regards