C++ QSyntaxHighlighter突出显示ascii?

C++ QSyntaxHighlighter突出显示ascii?,c++,qt,syntax-highlighting,C++,Qt,Syntax Highlighting,如何让QSyntaxHighlighter语法突出显示ascii字符,如@或#?这是我当前的代码: Highlighter::Highlighter(QTextDocument *parent) : QSyntaxHighlighter(parent) { HighlightingRule rule; keywordFormat.setForeground(Qt::darkBlue); keywordFormat.setFontWeight(QFont::Bold); QStringLi

如何让QSyntaxHighlighter语法突出显示ascii字符,如@或#?这是我当前的代码:

Highlighter::Highlighter(QTextDocument *parent)
    : QSyntaxHighlighter(parent)
{
HighlightingRule rule;
keywordFormat.setForeground(Qt::darkBlue);
keywordFormat.setFontWeight(QFont::Bold);
QStringList keywordPatterns;
keywordPatterns << "\\bchar\\b" << "\\bclass\\b" << "\\bconst\\b"
        << "\\bdouble\\b" << "\\benum\\b" << "\\bexplicit\\b"
        << "\\bfriend\\b" << "\\binline\\b" << "\\bint\\b"
        << "\\blong\\b" << "\\bnamespace\\b" << "\\boperator\\b"
        << "\\bprivate\\b" << "\\bprotected\\b" << "\\bpublic\\b"
        << "\\bshort\\b" << "\\bsignals\\b" << "\\bsigned\\b"
        << "\\bslots\\b" << "\\bstatic\\b" << "\\bstruct\\b"
        << "\\btemplate\\b" << "\\btypedef\\b" << "\\btypename\\b"
        << "\\bunion\\b" << "\\bunsigned\\b" << "\\bvirtual\\b"
        << "\\bvoid\\b" << "\\bvolatile\\b" << "\\b@implementation\\b";
foreach (QString pattern, keywordPatterns) {
    rule.pattern = QRegExp(pattern);
    rule.format = keywordFormat;
    highlightingRules.append(rule);
}

classFormat.setFontWeight(QFont::Bold);
classFormat.setForeground(Qt::darkMagenta);
rule.pattern = QRegExp("\\bQ[@-A-Za-z]+\\b");
rule.format = classFormat;
highlightingRules.append(rule);

singleLineCommentFormat.setForeground(Qt::red);
rule.pattern = QRegExp("//[^\n]*");
rule.format = singleLineCommentFormat;
highlightingRules.append(rule);

multiLineCommentFormat.setForeground(Qt::red);

quotationFormat.setForeground(Qt::darkGreen);
rule.pattern = QRegExp("\".*\"");
rule.format = quotationFormat;
highlightingRules.append(rule);

functionFormat.setFontItalic(true);
functionFormat.setForeground(Qt::blue);
rule.pattern = QRegExp("\\b[A-Za-z0-9_]+(?=\\()");
rule.format = functionFormat;
highlightingRules.append(rule);

commentStartExpression = QRegExp("/\\*");
commentEndExpression = QRegExp("\\*/");
}
Highlighter::Highlighter(QTextDocument*父级)
:QSyntaxHighlighter(父级)
{
高亮度规则;
关键字Format.setForeground(Qt::暗蓝色);
关键字格式.setFontWeight(QFont::Bold);
QStringList关键词模式;
关键字模式我建议查看我前一段时间写的内容。突出显示的方式将导致代码复杂、难以维护和缓慢。

我建议查看我前一段时间写的内容。突出显示的方式将导致代码复杂、难以维护和缓慢