将最大长度应用于QLineEdit

时间:2018-12-11 20:27:03

标签: qt qlineedit

全部

here中,我提出了一个覆盖keyPressEvent的建议,以便给出有关QLineEdit的最大长度限制的通知。

但是,我相信如果我尝试使用Ctrl + V或上下文菜单从键盘粘贴文本,将无法正常工作。

在这种情况下,最好的方法是什么?

再过一次:我正在寻找一种方法来通知用户最大长度限制。

TIA !!

1 个答案:

答案 0 :(得分:1)

5.12之前:

处理textChanged的{​​{1}}信号。

QLineEdit

现在在插槽中,查找剪贴板文字。 如果两者相同,则这是一种粘贴操作。 然后验证您的长度。 下面是Soem伪代码。

connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(lineEditTextCahnged(const QString&)));

版本5.12:

处理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. } } 信号

文档说

  

注意:如果部分   文本被接受,但不是全部。例如,如果有一个   设置的最大长度和剪贴板文本长于最大长度   粘贴时的长度。

http://doc.qt.io/qt-5/qlineedit.html#inputRejected