在 QTextEdit 中自动添加括号或引号
Auto add brackets or quotes in QTextEdit
我需要在我的 QTextEdit 中自动添加括号或引号。是否有任何函数可以执行此操作或是否有任何文档对此进行解释?
您可以覆盖 keyPressEvent 方法并在必要时添加相应的文本,同时保持光标位置。
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class TextEdit(QtWidgets.QTextEdit):
def keyPressEvent(self, event):
super().keyPressEvent(event)
options = {"[": "]", "'": "'", '"': '"', "{": "}", "(": ")"}
option = options.get(event.text())
if option is not None:
tc = self.textCursor()
p = tc.position()
self.insertPlainText(option)
tc.setPosition(p)
self.setTextCursor(tc)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = TextEdit()
w.show()
sys.exit(app.exec_())
我需要在我的 QTextEdit 中自动添加括号或引号。是否有任何函数可以执行此操作或是否有任何文档对此进行解释?
您可以覆盖 keyPressEvent 方法并在必要时添加相应的文本,同时保持光标位置。
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class TextEdit(QtWidgets.QTextEdit):
def keyPressEvent(self, event):
super().keyPressEvent(event)
options = {"[": "]", "'": "'", '"': '"', "{": "}", "(": ")"}
option = options.get(event.text())
if option is not None:
tc = self.textCursor()
p = tc.position()
self.insertPlainText(option)
tc.setPosition(p)
self.setTextCursor(tc)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = TextEdit()
w.show()
sys.exit(app.exec_())