QLineEdit控件的作用
QLineEdit是一个单行文本框控件,可以输入单行字符串。如果需要输入多行字符串,则使用QTextEdit控件。
QLineEdit控件常用的方法
QLineEdit控件常用的信号
QLineEdit不同模式的显示效果演示
文本框的4类输入文本显示格式
- QLineEdit.Normal,正常显示所输入的字符,此为默认选项;
- QLineEdit.NoEcho,不显示任何输入的字符。常用于密码类型的输入,且其密码长度需要保密时
- QLineEdit.Password,显示与平台相关的密码掩码字符,而不是实际输入的字符;
- QLineEdit.PasswordEchoOnEdit:在编辑时显示字符,负责显示密码类型的输入。
代码演示
# -*- coding: utf-8 -*- from PyQt5.QtWidgets import QApplication, QLineEdit , QWidget , QFormLayout import sys class lineEditDemo(QWidget): def __init__(self, parent=None): super(lineEditDemo, self).__init__(parent) self.setWindowTitle("QLineEdit例子") flo = QFormLayout() pNormalLineEdit = QLineEdit() pNoEchoLineEdit = QLineEdit() pPasswordLineEdit = QLineEdit( ) pPasswordEchoOnEditLineEdit = QLineEdit( ) flo.addRow("Normal", pNormalLineEdit) flo.addRow("NoEcho", pNoEchoLineEdit) flo.addRow("Password", pPasswordLineEdit) flo.addRow("PasswordEchoOnEdit", pPasswordEchoOnEditLineEdit) pNormalLineEdit.setPlaceholderText("Normal") pNoEchoLineEdit.setPlaceholderText("NoEcho") pPasswordLineEdit.setPlaceholderText("Password") pPasswordEchoOnEditLineEdit.setPlaceholderText("PasswordEchoOnEdit") # 设置显示效果 pNormalLineEdit.setEchoMode(QLineEdit.Normal) pNoEchoLineEdit.setEchoMode(QLineEdit.NoEcho) pPasswordLineEdit.setEchoMode(QLineEdit.Password) pPasswordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit) self.setLayout(flo) if __name__ == "__main__": app = QApplication(sys.argv) win = lineEditDemo() win.show() sys.exit(app.exec_())
代码运行结果如下:
在文本框中输入数字效果如下:
文本框的验证器
很多情况,我们需要对用户的输入做一些限制,可以通过验证器来进行。
常见的验证器有:
1.整型验证器、
2.浮点型验证器
3.及其他自定义验证器。
验证器代码实例
# -*- coding: utf-8 -*- ''' 验证器例子 ''' from PyQt5.QtWidgets import QApplication, QLineEdit , QWidget , QFormLayout from PyQt5.QtGui import QIntValidator ,QDoubleValidator , QRegExpValidator from PyQt5.QtCore import QRegExp import sys class lineEditDemo(QWidget): def __init__(self, parent=None): super(lineEditDemo, self).__init__(parent) self.setWindowTitle("QLineEdit例子") # 表单布局 flo = QFormLayout() pIntLineEdit = QLineEdit( ) pDoubleLineEdit = QLineEdit() pValidatorLineEdit = QLineEdit( ) flo.addRow("整形", pIntLineEdit) flo.addRow("浮点型", pDoubleLineEdit) flo.addRow("字母和数字", pValidatorLineEdit) pIntLineEdit.setPlaceholderText("整形") pDoubleLineEdit.setPlaceholderText("浮点型") pValidatorLineEdit.setPlaceholderText("字母和数字") # 整形 范围:[1, 99] pIntValidator = QIntValidator(self) pIntValidator.setRange(1, 99) # 浮点型 范围:[-360, 360] 精度:小数点后2位 pDoubleValidator = QDoubleValidator(self) pDoubleValidator.setRange(-360, 360) pDoubleValidator.setNotation(QDoubleValidator.StandardNotation) pDoubleValidator.setDecimals(2) # 字符和数字 reg = QRegExp("[a-zA-Z0-9]+$") pValidator = QRegExpValidator(self) pValidator.setRegExp(reg) # 设置验证器 pIntLineEdit.setValidator(pIntValidator) pDoubleLineEdit.setValidator(pDoubleValidator) pValidatorLineEdit.setValidator(pValidator) self.setLayout(flo) if __name__ == "__main__": app = QApplication(sys.argv) win = lineEditDemo() win.show() sys.exit(app.exec_())
代码运行结果: