文本的词间距与行间距
在QT中,要格式化文本,先要关注QFont、QTextCursor及QTextBlockFormat
- 英文中有latter与word之分
- latter中字母,word是由一些字母组成的词
- LatterSpace是字母的间距
- WordSpace是单词间距
- 要处理字母与单词,就用QFont
- 要处理行间距,那是属于Block了
这里又体现了对象父子关系,字母与单词的上级明显是字体。行就的上级就不是字体了,而是多个单词,于是产生一个新的对象叫Block。
以下代码处理行间距。
QTextCursor textCursor = ui->te_y_l->textCursor();
QTextBlockFormat textBlockFormat;
textBlockFormat.setLineHeight(50,QTextBlockFormat::FixedHeight);//设置固定行高
textBlockFormat.setAlignment(Qt::AlignRight);
textCursor.setBlockFormat(textBlockFormat);
ui->te_y_l->setTextCursor(textCursor);''
以下处理词间距
QFont te_font = ui->te_y_l->font();
te_font.setWordSpacing(20);
//te_font.setLetterSpacing(QFont::AbsoluteSpacing,5);
ui->te_x_b->setFont(te_font);
textCursor = ui->te_x_b->textCursor();
textBlockFormat.setAlignment(Qt::AlignTop);
//textBlockFormat.setTopMargin(-10);
textCursor.setBlockFormat(textBlockFormat);
ui->te_x_b->setTextCursor(textCursor);