初学qt,做个记事本,怎么才能得到textedit内容的行数

初学qt,做个记事本,怎么才能得到textedit内容的行数,第1张

// QTextEdit是多行文本编辑框,自动换行的,如果你要加行号,可以根据如下API进行

QTextEdit *textEdit = new QTextEdit()

// 转换成TextDocument

QTextDocument *document = textEdit->document()

// 获取行数

int nRowcnt = document->lineCount()

setPlainText()

toPlainText()

setHtml()

toHtml()

clear()

'''

【简介】

PyQt5中 QTextEdit例子

'''

from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QVBoxLayout, QPushButton

import sys

class TextEditDemo(QWidget):

def init (self, parent=None):

super(TextEditDemo, self). init (parent)

self.setWindowTitle("QTextEdit 例子")

self.resize(300, 270)

self.textEdit = QTextEdit()

self.btnPress1 = QPushButton("显示文本")

self.btnPress2 = QPushButton("显示HTML")

layout = QVBoxLayout()

layout.addWidget(self.textEdit)

layout.addWidget(self.btnPress1)

layout.addWidget(self.btnPress2)

self.setLayout(layout)

self.btnPress1.clicked.connect(self.btnPress1_Clicked)

self.btnPress2.clicked.connect(self.btnPress2_Clicked)

if name == " main ":

app = QApplication(sys.argv)

win = TextEditDemo()

win.show()

sys.exit(app.exec_())

因为要对一段字符串进行多次处理,为了避免多次刷新UI带来的负担,肯定是先将数据读入内存,进行处理,然后一次性更新UI。

所以先调用QTextEdit的toPlainText将文本存入一个QString里。然后就有多种方法了。如果必须考虑行号的话,可以调用QString的split,将数据存入一个QStringList里,这样就可以得到一个QString的链表,每个节点一行,可以快速定位到任意一行。最后处理完是可以调用QStringList的join生产一个QString,再调用QTextEdit的setPlainText存入文本框。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11640324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存