PyQt学习随笔:QTextEdit和QTextBrowser删除光标所在行内容的方法
2023-09-27 14:26:56 时间
在使用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!
相关文章
- win10一键访问更改适配器的方法
- 机器学习四种调参方法总结
- 机器学习-有监督学习-集成学习方法(三):Bootstrap->Boosting(提升)方法-->前向分步算法-->Adaboost算法--+决策树-->Adaboost提升树
- 机器学习-降维方法:PCA、KPCA、LDA、LLE、LE、t-SNE、AutoEncoder、MDS、ISOMAP、FastICA、SVD、LPP、ICA
- 从一些代码方法中,去学习C#委托
- PowerDesigner最基础的使用方法入门学习
- 三菱J4伺服驱动器错误代码AE6.0强制停止警告 解决方法
- Mysql并发时经典常见的死锁原因及解决方法
- 线上分享干货 | Deep-ReID: 关于行人重识别的深度学习方法
- 一种计算π的方法
- idea配置Run Dashboard的方法(亲测有效)
- 【GNN基础学习】图模块基本定义 || 图的邻接矩阵 || GNN中常见任务有哪些? || GNN消息传递方法 || 多层GCN有什么作用?
- OpenCV技巧 | 二值图孔洞填充方法与实现(附Python/C++源码)
- JAVA求两个数的最小公倍数和最大公约数(两种方法)
- js学习(一)-动态添加、修改、删除对象的属性和方法
- go微服务框架go-micro深度学习(四) rpc方法调用过程详解
- PyQt(Python+Qt)学习随笔:QTableWidgetItem项whatsThis、toolTip、statusTip提示信息访问方法
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项的子项索引、删除子项的方法
- PyQt学习随笔:Model/View设计中支持视图中数据修改的方法及步骤
- jQuery实现新浪微博自动底部加载的方法
- 已解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)异常的正确解决方法,亲测有效!!!
- 第一章 统计学习方法概论
- Python pandas.DataFrame.get_values函数方法的使用
- 过河问题(图论方法)
- 统计学习方法总结
- win32使用OutputDebugString输出调试信息的方法
- ios应用下架方法(说明)
- 李洪强iOS开发之iOS学习方法收集
- ES6学习之路5----数组方法
- 【集合我能讲两小时019】 hashmap jdk1.8红黑树扩容情况的split方法?