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

摘要:
专栏:Python基本教程目录专栏:Python应用程序专栏:PyQt入门学习Python博客目录;5G博客目录。使用QTextBrowser记录输出日志并接管标准输出后,反映某些Python模块输出的处理进度的提示内容在pychar中显示为一行,但在其自己的日志文件中显示为N行。为了实现这一点,QTextEdit和QTextBrowser应该实现类似的效果。可以通过删除当前行来处理行开头的“”字符。

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

参考代码如下:

        if info.startswith('
'):
            lastLine = self.hisInfo.textCursor()
            lastLine.select(QtGui.QTextCursor.LineUnderCursor)
            lastLine.removeSelectedText()
            self.hisInfo.moveCursor(QtGui.QTextCursor.StartOfLine, QtGui.QTextCursor.MoveAnchor)
            infoTmp = info.strip("
")
            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等图形界面对象》)。

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

跟老猿学Python、学5G!

免责声明:文章转载自《PyQt学习随笔:QTextEdit和QTextBrowser删除光标所在行内容的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySql连接字符串的说明微信小程序checkbox样式修改下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

guxh的python笔记三:装饰器

1,函数作用域 这种情况可以顺利执行: total = 0 def run(): print(total) 这种情况会报错: total = 0 def run(): print(total) total = 1 这种情况也会报错: total = 0 def run(): total += 1...

win8和win7下解决php5.3和5.4、5.5等不能加载php_curl.dll的终极解决办法

最近分别在WIN7和Windows8 上分别安装php 高版本!都遇到了这个问题! 一.win7系统32位, apache2.2, php5.2升级到5.4. 这个比较容易: 1. phpinfo发现没有加载curl; 2. 在php.ini中设置extension_dir 指向e:php5.4ext; 部分php扩展加载了, 但curl仍不行。 3. 设...

CentOS 7 下编译安装lnmp之PHP篇详解

一、安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二、PHP下载 官网 http://www.php.net/downloads.php 下载 php-7.3.0.tar.bz2 至 /usr/local/src 目录下 解压并移动至...

python利用递归去遍历多重dict

python中碰到多重dict,如下所示的双层dict,遍历里面的所有元素需要双重循环。现在为了代码美观,希望一句话就可以代替这样的双重for循环。 # 双重dict _dict = { 'A': { 'A1': [1, 2], 'A2': [3, 4] }, 'B': { 'B1':...

ubuntu 配置vim编辑器

 憋了很久,终于用上了unix下的vim 开发环境: 安装pydiction   pydiction用来实现代码补全和语法提示功能。pydiction不能通过apt安装,需要自行下载安装。 git clone https://github.com/rkulla/pydiction #https://github.com/ma6174/vim 看个人吧...

python冲刺(4)切片 等

   L[0:3] 表示从索引0开始,取到第3个元素为止(不包含第三个)。 只用一个L[:]表示从头到尾。   L[::2] 第三个参数表示每N个取一个,上面的L[::2]会每两个元素取出一个来,也就是各一个取一个。 把list换成tuple,切片操作完全相同, 迭代: 用for 循环迭代数列1-100并打印出7的倍数: for i in range(1,...