从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件

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_())

代码运行结果:
在这里插入图片描述


版权声明:本文为qq_42589613原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。