Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
C++ 文本背景突出显示在当前行中不可见_C++_Qt - Fatal编程技术网

C++ 文本背景突出显示在当前行中不可见

C++ 文本背景突出显示在当前行中不可见,c++,qt,C++,Qt,在我的Qt应用程序中,我使用带有文本/语法高亮显示(类似于此)的QPlainTextEdit小部件,它通过更改文本中存在的关键字的背景来高亮显示某些关键字。它工作得很好 但我也使用高亮显示当前行,具体如下方法所述: void CodeEditor::highlightCurrentLine() { QList<QTextEdit::ExtraSelection> extraSelections; if (!isReadOnly()) { QTe

在我的Qt应用程序中,我使用带有文本/语法高亮显示(类似于此)的
QPlainTextEdit
小部件,它通过更改文本中存在的关键字的背景来高亮显示某些关键字。它工作得很好

但我也使用高亮显示当前行,具体如下方法所述:

void CodeEditor::highlightCurrentLine()
{
     QList<QTextEdit::ExtraSelection> extraSelections;

     if (!isReadOnly()) {
         QTextEdit::ExtraSelection selection;

         QColor lineColor = QColor(Qt::yellow).lighter(160);

         selection.format.setBackground(lineColor);
         selection.format.setProperty(QTextFormat::FullWidthSelection, true);
         selection.cursor = textCursor();
         selection.cursor.clearSelection();
         extraSelections.append(selection);
     }

     setExtraSelections(extraSelections);
}
void代码编辑器::highlightCurrentLine()
{
QList外部选择;
如果(!isReadOnly()){
QTextEdit::外部选择;
QColor lineColor=QColor(Qt::黄色)。打火机(160);
selection.format.setBackground(lineColor);
selection.format.setProperty(QTextFormat::FullWidthSelection,true);
selection.cursor=textCursor();
selection.cursor.clearSelection();
附加(选择);
}
setExtraSelections(extraSelections);
}
它也很好用。除了它与语法高亮器结合使用时效果不佳。当前行设置的背景始终优先于语法高亮显示。这意味着关键字不会在当前行中突出显示

我希望语法突出显示优先于当前行突出显示。因此,它们的关键字也会在当前行中高亮显示。我能做些什么吗


当然,我可以通过改变前景而不是背景来突出显示关键字,这将解决问题。问题在于,在我的用例中,通过改变背景颜色来突出显示效果会更好。

您的Qt文档链接都是针对Qt4的。你真的在用Qt4吗?和是Qt5版本。我正在使用Qt5。你链接中的代码与我链接中的代码相同。