我使用python创建了一个使用PyQT5的表单,其形式是我从用户通过QLineEdit获取值。
我的问题是用户不应该在表单中留下任何字段为空。
如何避免空Lineedit?
一个简单的解决方案是使用自定义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_())