如何避免Pyqt5的Lineedit中出现Null或空值

Shr*_*ri 3 python isnullorempty qlineedit pyqt5

我使用 python 使用 PyQT5 创建了一个表单,在该表单中我通过 QLineEdit 从用户那里获取价值。

我的问题是用户不应将表单中的任何字段留空。

如何避免空行编辑?

eyl*_*esc 5

一个简单的解决方案是使用自定义 QValidator:

from PyQt5 import QtGui, QtWidgets

class NotEmptyValidator(QtGui.QValidator):
    def validate(self, text, pos):
        state = QtGui.QIntValidator.Acceptable if bool(text) else QtGui.QIntValidator.Invalid
        return state, text, pos

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QLineEdit("Hello World")
    validator = NotEmptyValidator(w)
    w.setValidator(validator)
    w.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)