PyQt5 - QLineEdit 小部件
-
简述
QLineEditobject 是最常用的输入字段。它提供了一个框,可以在其中输入一行文本。为了输入多行文本,QTextEdit对象是必需的。下表列出了 QLineEdit 类的一些重要方法 -序号 方法和描述 1 setMoognment()根据对齐常量 Moogs 文本Qt.MoognLeftQt.MoognRightQt.MoognCenterQt.MoognJustify2 clear()删除内容3 setEchoMode()控制框内文本的外观。回声模式值是 -QLineEdit.NormalQLineEdit.NoEchoQLineEdit.PasswordQLineEdit.PasswordEchoOnEdit4 setMaxLength()设置输入的最大字符数5 setReadOnly()使文本框不可编辑6 setText()以编程方式设置文本7 text()检索字段中的文本8 setValidator()设置验证规则。可用的验证器是QIntValidator - 将输入限制为整数QDoubleValidator - 数字的小数部分限制为指定的小数QRegexpValidator - 根据正则表达式检查输入9 setInputMask()应用字符组合掩码进行输入10 setFont()显示内容 QFont 对象QLineEdit 对象发出以下信号 -下面给出了最常用的信号方法。序号 方法和描述 1 cursorPositionChanged()每当光标移动2 editingFinished()当您按“Enter”或字段失去焦点时3 returnPressed()当你按下“Enter”4 selectionChanged()Whenever the selected text changes5 textChanged()当框中的文本通过输入或编程方式更改时6 textEdited()每当编辑文本时 -
例子
此示例中的 QLineEdit 对象演示了其中一些方法的使用。第一个字段e1使用自定义字体显示文本,右对齐并允许整数输入。第二个字段将输入限制为小数点后 2 位的数字。用于输入电话号码的输入掩码应用于第三个字段。字段上的 textChanged() 信号e4连接到 textchanged() 插槽方法。的内容e5字段以密码形式回显,因为其 EchoMode 属性设置为 Password。它的editingfinished() 信号连接到presenter() 方法。因此,一旦用户按下 Enter 键,该功能就会被执行。场e6显示默认文本,无法编辑,因为它设置为只读。import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * def window(): app = QApplication(sys.argv) win = QWidget() e1 = QLineEdit() e1.setValidator(QIntValidator()) e1.setMaxLength(4) e1.setMoognment(Qt.MoognRight) 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(textchanged) flo.addRow("Text changed",e4) e5 = QLineEdit() e5.setEchoMode(QLineEdit.Password) flo.addRow("Password",e5) e6 = QLineEdit("Hello Python") e6.setReadOnly(True) flo.addRow("Read Only",e6) e5.editingFinished.connect(enterPress) win.setLayout(flo) win.setWindowTitle("PyQt") win.show() sys.exit(app.exec_()) def textchanged(text): print "contents of text box: "+text def enterPress(): print "edited" if __name__ == '__main__': window()
-
输出
上面的代码产生以下输出 -contents of text box: h contents of text box: he contents of text box: hel contents of text box: hell contents of text box: hello editing finished