QTextCharFormat介绍:
QTextCharFormat类提供了QTextDocument中字符的格式化信息。
文档中文本的字符格式指定文本的可视属性,以及关于其在超文本文档中的角色的信息。
可以通过向setFont()函数提供字体来设置所使用的字体,并且可以调整其外观的各个方面以获得所需的效果。setFontFamily()和setFontPointSize()定义字体的族(例如时间)和打印大小;setFontWeight()和setFontItalic()提供对字体样式的控制。setFontUnderline()、setFontOverline()、setFontStrikeOut()和setFontFixedPitch()为文本提供额外的效果。
1.设置字体
fontlabel1 = new QLabel("字体");
fontcombobox = new QFontComboBox;
fontcombobox->setFontFilters(QFontComboBox::ScalableFonts); //列出所有字体
//创建一个QTextCharFormat类实例
QTextCharFormat fmt;
//设置用户选择的字体族
fmt.setFontFamily(combostr);
//获取text中的光标
QTextCursor cursor = ui->text->textCursor();
//如果光标没有选择高亮
if(!cursor.hasSelection())
//选择光标下的字,以空格,“,”,“.”标点符号分隔
cursor.select(QTextCursor::WordUnderCursor);
//修改当前块的格式
cursor.mergeBlockCharFormat(fmt);
//通过tet上的光标调用函数将修饰符中指定属性合并为当前字符格式
ui->text->mergeCurrentCharFormat(fmt);
2.设置字号
QTextCharFormat fmt;
fmt.setFontPointSize(spinvalue.toFloat());
ui->text->mergeCurrentCharFormat(fmt);
3.设置加粗
QTextCharFormat fmt;
fmt.setFontWeight(boldBtn->isChecked()?QFont::bold():QFont::Normal);
ui->text->mergeCurrentCharFormat(fmt);
4.设置倾斜
QTextCharFormat fmt;
fmt.setFontItalic(italicBtn->isChecked());
ui->text->mergeCurrentCharFormat(fmt);
5.设置下划线
QTextCharFormat fmt;
fmt.setFontUnderline(underlineBtn->isChecked());
ui->text->mergeCurrentCharFormat(fmt);
6.设置颜色
QColor color = QColorDialog::getColor(Qt::red,this);
if(color.isValid())
{
QTextCharFormat fmt;
fmt.setForeground(color);
ui->text->mergeCurrentCharFormat(fmt);
}