计算 QTextEdit 中有多少行
Count how many filled lines are in a QTextEdit
我想知道 QTextEdit 中有多少填充行。
使用以下命令之一,我得到了 QTextEdit 中所有行的计数。
self.ui.textEdit.document().lineCount()
self.ui.textEditdocument().blockCount()
例如,如果 TextEdit 为空,我会返回 1,如果一行已填充,我也会返回 1
背景是我目前正在开发一个联系人管理器,其中每个人都有不同的类别,其中存储了几个值。例如,有家庭类别。当我单击保存按钮时,我需要知道文本字段中有多少行带有值,以便在数据库中执行更新、删除或添加语句。
示例:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(326, 266)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 321, 261))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(self.verticalLayoutWidget)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.textEdit = QtWidgets.QTextEdit(self.verticalLayoutWidget)
self.textEdit.setObjectName("textEdit")
self.verticalLayout.addWidget(self.textEdit)
self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton.setObjectName("pushButton")
self.verticalLayout.addWidget(self.pushButton)
MainWindow.setCentralWidget(self.centralwidget)
self.pushButton.clicked.connect(self.filedLinesCount)
def filedLinesCount(self):
print(self.textEdit.document().lineCount())
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
结果:
在这种情况下,必须处理文本:
def filedLinesCount(self):
text = self.textEdit.toPlainText()
count = 0
for line in text.split("\n"):
word = line.strip()
if word:
print(word)
count = +1
print(count)
我想知道 QTextEdit 中有多少填充行。 使用以下命令之一,我得到了 QTextEdit 中所有行的计数。
self.ui.textEdit.document().lineCount()
self.ui.textEditdocument().blockCount()
例如,如果 TextEdit 为空,我会返回 1,如果一行已填充,我也会返回 1
背景是我目前正在开发一个联系人管理器,其中每个人都有不同的类别,其中存储了几个值。例如,有家庭类别。当我单击保存按钮时,我需要知道文本字段中有多少行带有值,以便在数据库中执行更新、删除或添加语句。
示例:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(326, 266)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 321, 261))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(self.verticalLayoutWidget)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.textEdit = QtWidgets.QTextEdit(self.verticalLayoutWidget)
self.textEdit.setObjectName("textEdit")
self.verticalLayout.addWidget(self.textEdit)
self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
self.pushButton.setObjectName("pushButton")
self.verticalLayout.addWidget(self.pushButton)
MainWindow.setCentralWidget(self.centralwidget)
self.pushButton.clicked.connect(self.filedLinesCount)
def filedLinesCount(self):
print(self.textEdit.document().lineCount())
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
结果:
在这种情况下,必须处理文本:
def filedLinesCount(self):
text = self.textEdit.toPlainText()
count = 0
for line in text.split("\n"):
word = line.strip()
if word:
print(word)
count = +1
print(count)