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 | 当编辑文本结束时,这个信号会被发射 |
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_())
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_())
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_())
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_())
发现时间是真的不够用,只能每天更新一点点了。