Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QPlainTextEdit:部分文本的不同字符格式_Qt_Qtextcursor - Fatal编程技术网

Qt QPlainTextEdit:部分文本的不同字符格式

Qt QPlainTextEdit:部分文本的不同字符格式,qt,qtextcursor,Qt,Qtextcursor,扫描了几个示例后,我没有设法解决此问题: 我为此创建了一个测试,它有一个简单的主窗口,其中包含一些文本。在触发器上,我希望文本的一部分为红色并加下划线。但这永远不会发生 问候 我的代码: void MainWindow::on_actionTest_triggered() { QTextCursor cur = ui.plainTextEdit->textCursor(); cur.setPosition(49); QTextCharFormat oldFormat

扫描了几个示例后,我没有设法解决此问题: 我为此创建了一个测试,它有一个简单的主窗口,其中包含一些文本。在触发器上,我希望文本的一部分为红色并加下划线。但这永远不会发生

问候

我的代码:

void MainWindow::on_actionTest_triggered()
{
    QTextCursor cur = ui.plainTextEdit->textCursor();
    cur.setPosition(49);
    QTextCharFormat oldFormat = cur.charFormat();
    QTextCharFormat newFormat = oldFormat;
    newFormat.setForeground(Qt::darkRed);
    newFormat.setUnderlineColor(Qt::darkRed);
    newFormat.setUnderlineStyle(QTextCharFormat::WaveUnderline);
    newFormat.setFontUnderline(true);
    cur.setCharFormat(newFormat);
    cur.setPosition(cur.position()+11);
    cur.setCharFormat(oldFormat);
    ui.plainTextEdit->setTextCursor(cur);
}

改用QTextEdit不会改变任何事情)

这是您的解决方案:

用于设置
下划线
背景

void MainWindow::on_pushButton_clicked()
{
    int begin = 30;   //begin highlight
    int end = 40;     //end highlight

    QTextCharFormat fmt;
    fmt.setBackground(Qt::red); // set color red
    fmt.setUnderlineStyle(QTextCharFormat::SingleUnderline); //set underline
    QTextCursor cursor(ui->plainTextEdit->document());
    cursor.setPosition(begin, QTextCursor::MoveAnchor);
    cursor.setPosition(end, QTextCursor::KeepAnchor);
    cursor.setCharFormat(fmt);
}

我认为
QPlainTextEdit
不能显示富文本。您应该改为使用
QTextEdit
。改为使用QTextEdit不会改变任何东西。@您好,我是Frogato,使用
QPlainTextEdit
可以做到这一点,请查看我的答案。太好了,谢谢!光标需要标记一个选择,然后。