QTextEdit设置当前行的文本的颜色和字体 | 您所在的位置:网站首页 › 怎么设置每行的字符 › QTextEdit设置当前行的文本的颜色和字体 |
思路
设置当前行文本的格式 需要使用到QTextCharFormat类,设置它的文本颜色或者文本字体,然后并获取 当前文本的光标,从光标开始位置设置文本的字符格式。 代码1、设置文本当前行的颜色 void MainWindow::setInsertTextColor(const QColor &color) { QTextCharFormat fmt;//文本字符格式 fmt.setForeground(color);// 前景色(即字体色)设为color色 QTextCursor cursor = ui->infoTextEdit->textCursor();//获取文本光标 cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示 ui->infoTextEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 }2、设置文本当前行的字体 void MainWindow::setInsertTextFont(const QFont &font) { QTextCharFormat fmt;//文本字符格式 fmt.setFont(font);//字体 QTextCursor cursor = ui->m_textdisplay->textCursor();//获取文本光标 cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示 ui->m_textdisplay->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 } 3、使用总结 //设置时间颜色与字体 setInsertTextFont(timeFont); setInsertTextColor(timeColor); ui->infoText->append(curTime.toString());4.设置某一部分字体颜色改变 QTextCharFormat fmt;//文本字符格式 fmt.setForeground(QColor("red"));// 前景色(即字体色)设为color色 QString str1 = ui->textEdit->toPlainText(); QTextCursor cursor = ui->textEdit->textCursor();//获取文本光标 ui->textEdit->setFocus(); cursor.setPosition(0,QTextCursor::MoveAnchor); cursor.setPosition(5,QTextCursor::KeepAnchor); cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示 ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 QTextCharFormat fmt;//文本字符格式 fmt.setForeground(QColor("red"));// 前景色(即字体色)设为color色 QString str1 = ui->textEdit->toPlainText(); QTextCursor cursor = ui->textEdit->textCursor();//获取文本光标 ui->textEdit->setFocus(); cursor.setPosition(0,QTextCursor::MoveAnchor); cursor.setPosition(2,QTextCursor::KeepAnchor); cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示 ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式 cursor.setPosition(6,QTextCursor::MoveAnchor); cursor.setPosition(8,QTextCursor::KeepAnchor); cursor.mergeCharFormat(fmt);//光标后的文字就用该格式显示 ui->textEdit->mergeCurrentCharFormat(fmt);//textEdit使用当前的字符格式
5.选中某一段文本 //此时光标所在的位置 QTextCursor cursor = ui->textEdit->textCursor(); //选中从start到end的这一段文本 int start = cursor.position(); int end = cursor.position()+5; cursor.setPosition(start,QTextCursor::MoveAnchor); cursor.setPosition(end,QTextCursor::KeepAnchor); ui->textEdit->setTextCursor(cursor);
|
CopyRight 2018-2019 实验室设备网 版权所有 |