介绍

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_浮点型

验证器

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_PyQt5_02

输入掩码

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_文本框_03

综合实例

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_PyQt5_04

后记

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