До 5.12:
Обрабатывать сигнал textChanged
QLineEdit
.
connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(lineEditTextCahnged(const QString&)));
Теперь в слоте ищите текст буфера обмена.Если оба одинаковы, то это своего рода действие вставки.Затем подтвердите свою длину.Ниже приведен псевдокод Soem.
void yourclass::lineEditTextCahnged(const QString& text)
{
QClipboard *pBoard = QApplication::clipboard();
QString clipStr = pBoard->text();
if (clipStr == text)
{
//THEN IT IS SOME PASTE ACTION.
//HANDLE YOUR LENGTH VALIDATION.
}
}
Версия 5.12:
Ручка void QLineEdit::inputRejected()
сигнал
В документации указано
Примечание. Этот сигнал все равно будет издаваться в случае, если часть текста принята, но не вся она принята.Например, если задана максимальная длина и текст буфера обмена больше максимальной длины при вставке.
http://doc.qt.io/qt-5/qlineedit.html#inputRejected