如何在文本编辑中在新行中生成文本?
How to generate text in a new line in text edit?
我正在 pyqt5 中创建语音到文本生成器 gui。
该程序从麦克风获取输入并相应地设置文本区域的文本,但每次用户输入时,文本编辑的整个文本都会发生变化。有没有什么方法可以在文本编辑的新行中生成 second 输入。下面是我正在使用的代码。
这是文本编辑部分的编码部分
self.text_area = QtWidgets.QTextEdit(self.centralwidget)
self.text_area.setGeometry(QtCore.QRect(10, 240, 621, 171))
font = QtGui.QFont()
font.setPointSize(10)
self.text_area.setFont(font)
self.text_area.setObjectName("text_area")
这是记录的方法
def record(self):
r = sr.Recognizer()
try:
with sr.Microphone() as source:
audio = r.listen(source)
MyText = r.recognize_google(audio)
MyText = MyText.lower()
self.text_area.setText(MyText)
except Exception as e4:
print(e4)
您想将新文本添加到现有文本中
allText=self.text_area.toPlainText()+myText
self.text_area.setText(allText)
使用insertPlainText
method to add text to the QTextEdit
。在要添加的字符串前添加一个换行符(\n
)。
值得注意的是,insertPlainText
将文本添加到光标所在的位置。因为可能不在末尾,所以调用moveCursor(QTextCursor.End)
将光标移动到末尾。
要保留光标的当前位置,保存并恢复光标位置 before/after 添加文本,使用 textCursor
和
setTextCursor
方法。
更改这些行:
with sr.Microphone() as source:
audio = r.listen(source)
MyText = r.recognize_google(audio)
MyText = MyText.lower()
self.text_area.setText(MyText)
至:
with sr.Microphone() as source:
audio = r.listen(source)
MyText = r.recognize_google(audio)
MyText = MyText.lower()
cursor = self.text_area.textCursor()
self.text_area.moveCursor(QTextCursor.End)
self.text_area.insertPlainText(f"\n{MyText}")
self.text_area.setTextCursor(cursor)
不要忘记添加这个导入:
from PyQt5.QtGui import QTextCursor
我正在 pyqt5 中创建语音到文本生成器 gui。 该程序从麦克风获取输入并相应地设置文本区域的文本,但每次用户输入时,文本编辑的整个文本都会发生变化。有没有什么方法可以在文本编辑的新行中生成 second 输入。下面是我正在使用的代码。
这是文本编辑部分的编码部分
self.text_area = QtWidgets.QTextEdit(self.centralwidget)
self.text_area.setGeometry(QtCore.QRect(10, 240, 621, 171))
font = QtGui.QFont()
font.setPointSize(10)
self.text_area.setFont(font)
self.text_area.setObjectName("text_area")
这是记录的方法
def record(self):
r = sr.Recognizer()
try:
with sr.Microphone() as source:
audio = r.listen(source)
MyText = r.recognize_google(audio)
MyText = MyText.lower()
self.text_area.setText(MyText)
except Exception as e4:
print(e4)
您想将新文本添加到现有文本中
allText=self.text_area.toPlainText()+myText
self.text_area.setText(allText)
使用insertPlainText
method to add text to the QTextEdit
。在要添加的字符串前添加一个换行符(\n
)。
值得注意的是,insertPlainText
将文本添加到光标所在的位置。因为可能不在末尾,所以调用moveCursor(QTextCursor.End)
将光标移动到末尾。
要保留光标的当前位置,保存并恢复光标位置 before/after 添加文本,使用 textCursor
和
setTextCursor
方法。
更改这些行:
with sr.Microphone() as source:
audio = r.listen(source)
MyText = r.recognize_google(audio)
MyText = MyText.lower()
self.text_area.setText(MyText)
至:
with sr.Microphone() as source:
audio = r.listen(source)
MyText = r.recognize_google(audio)
MyText = MyText.lower()
cursor = self.text_area.textCursor()
self.text_area.moveCursor(QTextCursor.End)
self.text_area.insertPlainText(f"\n{MyText}")
self.text_area.setTextCursor(cursor)
不要忘记添加这个导入:
from PyQt5.QtGui import QTextCursor