PyQt5 - QLineEdit 小部件

  • 简述

    QLineEditobject 是最常用的输入字段。它提供了一个框,可以在其中输入一行文本。为了输入多行文本,QTextEdit对象是必需的。
    下表列出了 QLineEdit 类的一些重要方法 -
    序号 方法和描述
    1
    setMoognment()
    根据对齐常量 Moogs 文本
    Qt.MoognLeft
    Qt.MoognRight
    Qt.MoognCenter
    Qt.MoognJustify
    2
    clear()
    删除内容
    3
    setEchoMode()
    控制框内文本的外观。回声模式值是 -
    QLineEdit.Normal
    QLineEdit.NoEcho
    QLineEdit.Password
    QLineEdit.PasswordEchoOnEdit
    4
    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 changes
    5
    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()
    
    
  • 输出

    上面的代码产生以下输出 -
    QLineEdit 小部件输出
    
    
    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