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++ QRegExp编译时警告_C++_Qt_Qregexp - Fatal编程技术网

C++ QRegExp编译时警告

C++ QRegExp编译时警告,c++,qt,qregexp,C++,Qt,Qregexp,我正在开发一些Qtapp,它的主窗口由QPlainTextEdit子类日志窗口组成,用于输出事件。我有三种类型的消息: 信息消息,表示以[INFO]子字符串开头的QString 警告消息,表示以[Warning]子字符串开头的QString 错误消息,表示以[Error]子字符串开头的QString 现在,我想用QSyntaxHighlighter类实现的是根据这些消息的类型(INFOtype-Qt::DarkBluecolor,WARNINGtype-Qt::DarkYellowcolor,E

我正在开发一些
Qt
app,它的主窗口由
QPlainTextEdit
子类日志窗口组成,用于输出事件。我有三种类型的消息:

  • 信息消息,表示以
    [INFO]
    子字符串开头的
    QString
  • 警告消息,表示以
    [Warning]
    子字符串开头的
    QString
  • 错误消息,表示以
    [Error]
    子字符串开头的
    QString
  • 现在,我想用
    QSyntaxHighlighter
    类实现的是根据这些消息的类型(INFOtype-
    Qt::DarkBlue
    color,WARNINGtype-
    Qt::DarkYellow
    color,ERRORtype-
    Qt::DarkRed
    color)更改这些消息的颜色,下面是代码块,哪些人应该完成任务:

    void UeLogWindowTextHighlighter::ueSetupRules()
    {
        UeHighlightRule* ueRuleInfo=new UeHighlightRule(this);
        UeHighlightRule* ueRuleWarning=new UeHighlightRule(this);
        UeHighlightRule* ueRuleError=new UeHighlightRule(this);
    
        this->ueInfoStartExpression()->setPattern("^[INFO].\*");        // FIRST WARNING
        this->ueWarningStartExpression()->setPattern("^[WARNING].\*");  // SECOND WARNING
        this->ueErrorStartExpression()->setPattern("^[ERROR].\*");      // THIRD WARNING
    
        this->ueInfoExpressionCharFormat()->setForeground(Qt::darkGray);
        this->ueWarningExpressionCharFormat()->setForeground(Qt::darkYellow);
        this->ueErrorExpressionCharFormat()->setForeground(Qt::darkRed);
    
        ueRuleInfo->ueSetPattern(this->ueInfoStartExpression());
        ueRuleInfo->ueSetTextCharFormat(this->ueInfoExpressionCharFormat());
    
        this->ueHighlightRules()->append(ueRuleInfo);
    
        ueRuleWarning->ueSetPattern(this->ueWarningStartExpression());
        ueRuleWarning->ueSetTextCharFormat(this->ueWarningExpressionCharFormat());
    
        this->ueHighlightRules()->append(ueRuleWarning);
    
        ueRuleError->ueSetPattern(this->ueErrorStartExpression());
        ueRuleError->ueSetTextCharFormat(this->ueErrorExpressionCharFormat());
    
        this->ueHighlightRules()->append(ueRuleError);
    }   // ueSetupRules
    
    但是,当我编译项目时,会收到以下警告:

    ../../../gui/uelogwindowtexthighlighter.cpp: In member function 'void UeLogWindowTextHighlighter::ueSetupRules()': ../../../gui/uelogwindowtexthighlighter.cpp:58:47: warning: unknown escape sequence: '\*' [enabled by default]
         this->ueInfoStartExpression()->setPattern("^[INFO].\*");
                                                   ^ ../../../gui/uelogwindowtexthighlighter.cpp:59:50: warning: unknown escape sequence: '\*' [enabled by default]
         this->ueWarningStartExpression()->setPattern("^[WARNING].\*");
                                                      ^ ../../../gui/uelogwindowtexthighlighter.cpp:60:48: warning: unknown escape sequence: '\*' [enabled by default]
         this->ueErrorStartExpression()->setPattern("^[ERROR].\*");
                                                    ^
    
    因此,信息没有着色(这是我的怀疑)我的正则表达式出了什么问题?我在跟踪。

    不必转义Star(
    *
    )。删除
    \
    ,或者如果需要
    \
    ,则应将其转义并写入双精度(
    \