QT:设置textedit⽂本框中某个字符的格式
弄了好久吧,终于弄出来了。qt⾃带的帮助系统还真是挺好的,⽹上查了这么久资料,也没有到具体的或者模糊的解决⽅法。只是说⽤html或者⽤QTextFormat及各种派⽣的类来改变⽂本框中字符格式,nnd,哥哥也知道可以⽤这个来实现。具体就没有了。废话少说,记录下来,以后⽤得着。这⾥⽤的是format。具体功能就是修改光标所在⾏的第pos个字符的格式,这⾥的格式是给字符加个下划线。其他格式,⽐如字符颜⾊、背景颜⾊也是如此,改下format就好了。
void Widget::setCharColor(unsigned int pos)
{
if(pos<=0)return;
QTextCursor cursor=ui->view1->textCursor();
ui->view1->setTextCursor(cursor);//added
QTextCharFormat defcharfmt=ui->view1->currentCharFormat();
QTextCharFormat newcharfmt=defcharfmt;
newcharfmt.setFontUnderline(true);
newcharfmt.setUnderlineColor(QColor(Qt::red));
newcharfmt.setUnderlineStyle(QTextCharFormat::SingleUnderline);
ui->view1->setCurrentCharFormat(newcharfmt);
ui->view1->setTextCursor(cursor);//added
//ui->view1->setCurrentCharFormat(defcharfmt);
ui->view1->setFocus();
}
textstyle
常⽤格式:
【newcharfmt.setBackground(QColor("#EEEE00"));】
【newcharfmt.setFontPointSize(fontSize);】
【newcharfmt.setFontWeight(QFont::Bold);】
【highlightedFormat.setBackground(Qt::yellow);】
【newcharfmt.setForeground(Qt::red);】
注意:【上⾯的操作会促发textchanged槽函数,所以⽤到槽函数的时候注意下,加个标志判断下就好了】
说明:【vePositon,,,//加上这句....ed】
不加上时效果如下:
加上时效果如下:
附:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。