日志分析系统 ^^^^个人总结

8 篇文章 0 订阅
6 篇文章 0 订阅

最近在做一个日志分析系统,功能不多,但是由于基础弱,很多知识点都不会,以下是总结:

 

  • 获取QTextBrowser的内容
ui->textBrowser->document()->toPlainText();

注:用document()获取QTextDocument对象后,还可以获取更多功能 

  •  获取光标所在的行数、列数:
QTextCursor  cursor = ui->textBrowser->textCursor();

    int lineNumber = cursor.blockNumber();
    
    int columnNumber = cursor.columnNumber();
  • 获取光标所在行的内容:
//trimmed()是去除空格
QString readID = textCursor.selectedText().trimmed();
  • 删除重复项:
    int QStringList::removeDuplicates()

     

  • 同时浏览多个文件,可以用QTabWidget

 

  • 点击QTabWidget不同参数的选项卡,显示该参数下的文件内容:
//在头文件中,声名一个QTextEdit,

//在读取文件时,设置循环,每打开一个文件,new一下textEdit 

//最后:
ui->tabWidget->insertTab( i, textEdit, fileInfo.fileName() );

 

 

  • 获取文件名(不带路径的那种)
    QString file = fileName.at( i );
    
    fileInfo = QFileInfo( file );
    
    fileName = fileInfo.fileName();
    

     

  •  在使用qrand()产生随机数之前,一般先在构造函数内用qsrand()为其设置初值,如若不设置初值,那么每次运行程序qrand()都会产生相同的一组随机数

 

  • QTabWidget  的其中一个信号:void tabBarClicked(int). //当点击第参数个选项卡的时候,发出信号. 

 

  • 以下是寻找与选中光标有相同ID号的行,给找到的那行添加背景颜色, 这是最让我头疼的一段,光这一段,就忙了好久,还被领导训了,哭唧唧
 QTextDocument *document = ui->textEdit_addColor->document();

    QTextCursor textCursor = ui->textEdit_addColor->textCursor();

    QString readID = textCursor.selectedText().trimmed();

    bool found = false;

    QTextCursor highlightCursor( document );

    QTextCursor cursor( document );

    QTextCursor stringCursor( document );

    //开始
    cursor.beginEditBlock();

    QTextCharFormat fmt( cursor.charFormat() );

    fmt.setBackground( textCursor.charFormat().background() );

    fmt.setFontWeight( QFont::Bold );

    while ( !highlightCursor.isNull() && !highlightCursor.atEnd() )
    {
        //查找指定的文本,匹配整个单词
        highlightCursor = document->find( readID, highlightCursor, QTextDocument::FindWholeWords );

        int blockNum = highlightCursor.blockNumber();

        QTextDocument *textDocument = ui->textEdit_addColor->document();

        QTextBlock textBlock = textDocument->findBlockByLineNumber( blockNum );

        QString readString = textBlock.text();

        stringCursor = document->find( readString, stringCursor, QTextDocument::FindWholeWords );

        if ( !stringCursor.isNull() )
        {
            if( !found )
            {
                found = false;

                stringCursor.mergeCharFormat( fmt );
            }

        }
    }

    cursor.endEditBlock();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值