我想通过单击按钮来格式化 QTextEdit 中的选定文本。例如,如果它不是粗体,我想将其设为粗体,如果它是粗体,则将其设为非粗体。请帮我举个例子。
编辑:
实际上我已经找到了一个代码 - 用于文本编辑器的 qt 演示,它可以满足我的需要:
void
MyTextEdit::boldText(bool isBold) //this is the SLOT for the button trigger(bool)
{
QTextCharFormat fmt;
fmt.setFontWeight(isBold ? QFont::Bold : QFont::Normal);
mergeFormatOnWordOrSelection(fmt);
}
void
MyTextEdit::mergeFormatOnWordOrSelection(const QTextCharFormat &format)
{
QTextCursor cursor = m_textEdit->textCursor();
if (!cursor.hasSelection())
cursor.select(QTextCursor::WordUnderCursor);
cursor.mergeCharFormat(format);
m_textEdit->mergeCurrentCharFormat(format);
}
但我不明白什么返回textCursor()方法,以及属性的合并是如何完成的?只是一些格式正在改变,其中一些保持不变。mergeCharFormat函数如何理解要更改的内容和保持原样的内容。请解释一下这2件事。谢谢。