PyQt学习随笔:QTextEdit和QTextBrowser删除光标所在行内容的方法

编程知识 行业动态 更新时间:2024-06-13 00:18:16
  • 专栏:Python基础教程目录
  • 专栏:使用PyQt开发图形界面Python应用
  • 专栏:PyQt入门学习
  • 老猿Python博文目录
  • 老猿学5G博文目录

在使用QTextBrowser用于记录输出日志,并接管了标准输出后,对于某些Python模块输出的反映处理进度的提示内容,在pycharm中显示为一行,但在自己的日志文件中显示为N多行。为此分析了一下这些特殊的日志信息,发现是使用’\r’为开头的字符串,即输出不换行但回到行首。为此要做QTextEdit和QTextBrowser实现类似的效果,可以通过对行首的’\r’字符采用删除当前行的方式进行处理。

参考代码如下:

        if info.startswith('\r'):
            lastLine = self.hisInfo.textCursor()
            lastLine.select(QtGui.QTextCursor.LineUnderCursor)
            lastLine.removeSelectedText()
            self.hisInfo.moveCursor(QtGui.QTextCursor.StartOfLine, QtGui.QTextCursor.MoveAnchor)
            infoTmp = info.strip("\r")
            if self.loadWin.isLogTime:
                self.hisInfo.insertPlainText(time.strftime("%Y%m%d%H%M%S", time.localtime())+": "+infoTmp)
            else:self.hisInfo.insertPlainText(infoTmp)

上述代码中,self.hisInfo为记录输出日志的QTextEdit或QTextBrowser对象,info为截获的输出信息(关于怎么截获标准输出可以参考《PyQt(Python+Qt)学习随笔:print标准输出sys.stdout以及stderr重定向QTextBrowser等图形界面对象》)。

跟老猿学Python、学5G!

  • 专栏:Python基础教程目录
  • 专栏:使用PyQt开发图形界面Python应用
  • 专栏:PyQt入门学习
  • 老猿Python博文目录
  • 老猿学5G博文目录

更多推荐

PyQt学习随笔:QTextEdit和QTextBrowser删除光标所在行内容的方法

本文发布于:2023-03-26 12:46:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/235442e8eb7a512b0ff8e1456cf76893.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:光标   在行   随笔   方法   内容

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!