我有一个与数据库 VARCHAR(2048) 字段绑定的多行 QTextEdit。我想将用户输入长度限制为最大 2048 个字符,QTextEdit 没有像 QLin 那样的 setMaxLength(int) 方法……
我有一个与数据库 VARCHAR(2048) 字段绑定的多行 QTextEdit。
我想将用户输入的长度限制为最大 2048 个字符
QTextEdit 没有像 QLineEdit 那样的 setMaxLength(int) 方法。
有人有什么建议吗?
self.editBox = QTextEdit()
谢谢
使用插槽\'textChanged()\':
txtInput = QPlainTextEdit()
QObject.connect(txtInput, SIGNAL("textChanged()"), txtInputChanged)
def txtInputChanged():
if txtInput.toPlainText().length() > maxInputLen:
text = txtInput.toPlainText()
text = text[:maxInputLen]
txtInput.setPlainText(text)
cursor = txtInput.textCursor()
cursor.setPosition(maxInputLen)
txtInput.setTextCursor(cursor)
另一种可能性是从“QPlainTextEdit”派生并重新实现“keyPress”事件过滤键,当达到最大长度或按下不需要输入的其他键时。
http://doc.qt.io/qt-5/qplaintextedit.html#keyPressEvent