Я нашел этот FAQ на вики Qt:
Нет прямого API для установки / получения максимальной длины QTextEdit, но вы можете справиться с этим самостоятельно,подключите слот к сигналу contentsChanged () , а затем вызовите toPlainText (). length () , чтобы узнать, насколько он велик.Если он превышает допустимый предел, вы можете переопределить keyPressEvent () и keyReleaseEvent () , чтобы ничего не делать для обычных символов.
Вы также можете бытьинтересует это сообщение , к которому прикреплен какой-то код (надеюсь, он у вас работает):
#include <QtCore>
#include <QtGui>
#include "TextEdit.hpp"
TextEdit::TextEdit() : QPlainTextEdit() {
connect(this, SIGNAL(textChanged()), this, SLOT(myTextChanged()));
}
TextEdit::TextEdit(int maxChar) : QPlainTextEdit() {
this->maxChar = maxChar;
connect(this, SIGNAL(textChanged()), this, SLOT(myTextChanged()));
}
int TextEdit::getMaxChar() {
return maxChar;
}
void TextEdit::setMaxChar(int maxChar) {
this->maxChar = maxChar;
}
void TextEdit::myTextChanged() {
if (QPlainTextEdit::toPlainText().length()>maxChar) {
QPlainTextEdit::setPlainText(QPlainTextEdit::toPlainText().left(QPlainTextEdit::toPlainText().length()-1));
QPlainTextEdit::moveCursor(QTextCursor::End);
QMessageBox::information(NULL, QString::fromUtf8("Warning"),
QString::fromUtf8("Warning: no more then ") + QString::number(maxChar) + QString::fromUtf8(" characters in this field"),
QString::fromUtf8("Ok"));
}
}