单行文本框QLineEdit

介绍

QLabelEdit类是一个单行文本框控件,可以输入单行字符串。如果需要输入多行字符串,则使用QTextEdit类。

方法

QlabeL常用方法

方法 描述
setAlignment() 按固定值方法对齐文本
Qt.AlignLeft,水平方向靠左对齐
Qt.AlignRight,水平方向靠右对齐
Qt.AlignCenter,水平方向居中对齐
Qt.AlignJustify,水平方向调整间距两端对齐
Qt.AlignTop,垂直方向靠上对齐
Qt.AlignBottom,垂直方向靠下对齐
Qt.AlignVCenter,垂直方向居中对齐
clear() 清除文本框内容
setEchoMode() 设置文本框显示格式。允许输入的文本显示格式的值可以是:
QLineEdit.Normal 正常显示所输入的字符,此为默认项
QLineEdit.NoEcho 不显示任何输入的字符,常用于密码类型的输入,且密码长度需要保密时
QLineEdit.Password 显示与平台相关的密码掩码字符,而不是实际输入的字符
QLineEdit.PasswordEchoOnEdit,在编辑时显示字符,负责显示密码类型的输入
setPlaceholderText() 设置文本框浮显文字
setMaxLength() 设置文本框所允许输入的最大字符数
setReadOnly() 设置文本框为只读的
setText() 设置文本框内容
Text() 返回文本框内容
setDragEnabled() 设置文本框是否接受拖动
setMaxLength() 设置允许输入字符的最大长度
selectAll() 全选
setFocus() 得到焦点
setInputMask() 设置掩码
setValidator() 设置文本框的验证码(验证规则),将限制任意可能输入的文本。
可用的校验器为:
QIntValidator,限制输入整数
QDoubleValidator,限制输入浮点数
QRegexpValidator,检查输入是否符合正则表达式

占位符

字符 含义
A ASCII字母字符是必须输入的(A-Z,a-z)
a ASCII字母字符是允许输入的,但不是必须输入的
N ASCII字母字符是必须输入的(A-Z,a-z,0-9)
n ASCII字母字符是允许输入的,但不是必须输入的
X 任何字符都是必须输入
x 任何字符都是允许输入的,但不是必须输入的
9 ASCII数字字符是必须输入的(0-9)
0 ASCII数字字符是允许输入的,但不是必须输入的
D ASCII数字字符是必须输入的(1-9)
d ASCII数字字符是允许输入的,但不是必须的(1-9)
# ASCII数字字符与加减字符是允许输入的,但不是必须的
H 十六进制格式字符是必须输入的(A-F,a-f,0-9)
h 十六进制格式字符允许输入,但不是必须的
B 二进制格式字符是必须输入的(0,1)
b 二进制格式字符是允许输入的,但不是必须的
> 所有字母字符都大写
< 所有字母字符都小写
! 关闭大小写转换
\ 使用‘\’转义上面列出的字符

掩码

掩码 注意事项
000.000.000.000;_ ip地址,空白字符是‘_’
HH:HH:HH:HH:HH:HH; MAC地址
0000-00-00 日期,空白字符是空格
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# 许可证号,空白字符是‘_’,所有字母都转换为大写

信号

方法 描述
selectionChanged 只要选择改变了,这个信号就会被发射
textChanged 当修改文本内容时,这个信号会被发射
editingFinished 当编辑文本结束时,这个信号会被发射

EchoMode的显示效果

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

EchoMode的显示效果展示

单行文本框QLineEdit_第1张图片

验证器

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

验证器展示

单行文本框QLineEdit_第2张图片

输入掩码

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()          		
		pIPLineEdit = QLineEdit()
		pMACLineEdit = QLineEdit()
		pDateLineEdit = QLineEdit()
		pLicenseLineEdit = QLineEdit()		

		pIPLineEdit.setInputMask("000.000.000.000;_")
		pMACLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")
		pDateLineEdit.setInputMask("0000-00-00")
		pLicenseLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#")

		flo.addRow("数字掩码", pIPLineEdit)
		flo.addRow("Mac掩码", pMACLineEdit)
		flo.addRow("日期掩码", pDateLineEdit)
		flo.addRow("许可证掩码", pLicenseLineEdit)
        
		#pIPLineEdit.setPlaceholderText("111")
		#pMACLineEdit.setPlaceholderText("222")
		#pLicenseLineEdit.setPlaceholderText("333")
		#pLicenseLineEdit.setPlaceholderText("444")
		      		                    
		self.setLayout(flo)                        
   
if __name__ == "__main__":       
	app = QApplication(sys.argv)
	win = lineEditDemo()	
	win.show()	
	sys.exit(app.exec_())

输入掩码展示

单行文本框QLineEdit_第3张图片

综合实例

from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
from PyQt5.QtGui import QIntValidator , QDoubleValidator , QFont
from PyQt5.QtCore import Qt
import sys  

class lineEditDemo(QWidget):
	def __init__(self, parent=None):
		super(lineEditDemo, self).__init__(parent)
		e1 = QLineEdit()
		e1.setValidator( QIntValidator() )
		e1.setMaxLength(4)
		e1.setAlignment( Qt.AlignRight )
		e1.setFont( QFont("Arial",20))
		e2 = QLineEdit()
		e2.setValidator( QDoubleValidator(0.99,99.99,2))
		flo = QFormLayout()
		flo.addRow("integer validator", e1)
		flo.addRow("Double validator",e2)
		e3 = QLineEdit()
		e3.setInputMask('+99_9999_999999')
		flo.addRow("Input Mask",e3)
		e4 = QLineEdit()
		e4.textChanged.connect( self.textchanged )
		flo.addRow("Text changed",e4)
		e5 = QLineEdit()
		e5.setEchoMode( QLineEdit.Password )
		flo.addRow("Password",e5)
		e6 = QLineEdit("Hello PyQt5")
		e6.setReadOnly(True)
		flo.addRow("Read Only",e6 )
		e5.editingFinished.connect( self.enterPress )
		self.setLayout(flo)
		self.setWindowTitle("QLineEdit例子")
	
	def textchanged(self, text):
		print( "输入的内容为: "+text )

	def enterPress( self ):
		print( "已输入值" )

   
if __name__ == "__main__":       
	app = QApplication(sys.argv)
	win = lineEditDemo()	
	win.show()	
	sys.exit(app.exec_())

综合实例展示

单行文本框QLineEdit_第4张图片

后记

发现时间是真的不够用,只能每天更新一点点了。

你可能感兴趣的:(#,PyQt5)