pyqt5 按行获取多行输入内容
在PyQt5中,我们经常需要获取用户输入的文本内容。而有时候,我们需要获取多行输入内容,并且需要按行进行处理。本文将介绍如何在PyQt5中实现按行获取多行输入内容的功能,同时提供多个示例代码帮助理解。
示例一:获取多行输入内容并按行输出
首先,我们需要创建一个简单的PyQt5窗口,并在窗口中添加一个多行文本框供用户输入内容。然后,我们编写一个函数,实现按行获取输入内容并输出到控制台。下面是示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.textEdit = QTextEdit(self)
self.textEdit.setGeometry(50, 50, 400, 300)
self.textEdit.textChanged.connect(self.get_text_lines)
self.show()
def get_text_lines(self):
text = self.textEdit.toPlainText()
lines = text.split('\n')
for line in lines:
print(line)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
在这个示例中,我们创建了一个窗口并在窗口中添加了一个多行文本框。每当文本框的内容发生变化时,我们调用get_text_lines
函数,该函数会按行获取输入内容并输出到控制台。运行以上代码后,可以输入多行文本内容到文本框,并在控制台上看到每一行的内容。
示例二:按行获取输入内容并筛选包含指定字符串的行
有时候,我们需要根据输入内容的某些特征进行处理,比如只处理包含特定字符串的行。下面是一个示例代码,实现了按行获取输入内容并筛选包含geek-docs.com
的行:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.textEdit = QTextEdit(self)
self.textEdit.setGeometry(50, 50, 400, 300)
self.textEdit.textChanged.connect(self.get_geek_docs_lines)
self.show()
def get_geek_docs_lines(self):
text = self.textEdit.toPlainText()
lines = text.split('\n')
for line in lines:
if 'geek-docs.com' in line:
print(line)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
运行以上代码后,输入包含geek-docs.com
的多行文本内容到文本框,只有包含该字符串的行会被输出到控制台上。
总结
通过上面的示例代码,我们展示了如何在PyQt5中实现按行获取多行输入内容的功能。这种功能在处理大段文本或需要逐行处理文本内容时非常有用。