zoukankan      html  css  js  c++  java
  • 文本框类控件

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

    QLineEdit类中的常用方法:

      setAlignment()       按固定值方式对齐文本:

                      Qt.AlignLeft, 水平方向靠左对齐

                      Qt.AlignRight,水平方向靠右对齐

                      Qt.AlignCenter,水平方向居中对齐

                                                 Qt.AlignJustify,水平方向调整间距两端对齐

                                                 Qt.AlignTop,垂直方向靠上对齐

                                                 Qt.AlignBottom,垂直方向靠下对齐

                                                 Qt.AlignVCenter,垂直方向居中对齐

      clear()                    清除文本框内容

      setEchoMode()      设置文本框显示格式。允许输入的文本显示格式的值也可以是:

                     QLineEdit.Normal,正常显示所输入的字符,此为默认选项

                  QLineEdit.NoEcho,不显示任何输入的字符,常用于密码类型的输入,且其密码长度需要保密时

                  QLineEdit.Password,显示与平台相关的密码掩码字符,而不是实际输入的字符

                  QLineEdit.PasswordEchoEdit,在编辑时显示字符,负责显示密码类型的输入

      setPlaceholderText()  设置文本框显文字

      setMaxLength()      设置文本框所运行输入的最大字符数

      setReadOnly()       设置文本框为只读的

      setText()            设置文本框内容

      Text()                      返回文本框内容

      setDragEnabled()   设置文本框是否接受拖动

      setAll()                    全选

      setFocus()             得到焦点

      setInputMask()       设置掩码

      setValidator()         设置文本框的验证器(验证规则),将限制任意可能输入的文本。可用的校验器为:

                  QIntValidator,限制输入整数

                QDoubleValidator,限制输入浮点数

                QRegexpValidator,检查输入是否符合正则表达式

    QLineEdit类中的常用信号

    selectionChanged            只要选择改变了,这个信号就会被发射

    textChanged                    当修改文本内容时,这个信号会被发射

    editingFinished                当编辑文本结束时,这个信号会被发射

    案例9  EchoMode的显示效果

    import sys
    from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QFormLayout
    
    
    class LineEditDemo(QWidget):
        def __init__(self, parent=None):
            super().__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("PasswordEchoNoEdit")
    
            # 设置显示效果
            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_())

    案例10  验证器

    import sys
    from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QFormLayout
    from PyQt5.QtGui import QIntValidator, QDoubleValidator, QRegExpValidator
    from PyQt5.QtCore import QRegExp
    
    
    class LineEditDemo(QWidget):
        def __init__(self, parent=None):
            super().__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()
            pIntValidator.setRange(1, 99)
    
            # 浮点型,范围:[-360, 360],精度:小数点后两位
            pDoubleValidator = QDoubleValidator()
            pDoubleValidator.setRange(-360, 360)
            pDoubleValidator.setNotation(QDoubleValidator.StandardNotation)
            pDoubleValidator.setDecimals(2)
    
            # 字母和数字
            reg = QRegExp("[a-zA-Z0-9]+$")
            pValidator = QRegExpValidator()
            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_())

    案例11  输入掩码

     要限制用户的输入,除了使用验证器,还可以使用输入掩码,常见的有IP地址、MAC地址、日期、许可证号等。

    import sys
    from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QFormLayout
    
    
    class LineEditDemo(QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setWindowTitle("QLineEdit 的输入如掩码例子")
    
            flo = QFormLayout()
            pIPLineEdit = QLineEdit()
            pMACLineEdit = QLineEdit()
            pDateLineEdit = QLineEdit()
            pLincenseLineEdit = QLineEdit()
    
            pIPLineEdit.setInputMask("000.000.000.000;_")
            pMACLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")
            pDateLineEdit.setInputMask("0000-00-00")
            pLincenseLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#")
    
            flo.addRow("数字掩码", pIPLineEdit)
            flo.addRow("Mac掩码", pMACLineEdit)
            flo.addRow("日期掩码", pDateLineEdit)
            flo.addRow("许可证掩码", pLincenseLineEdit)
    
            self.setLayout(flo)
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        win = LineEditDemo()
        win.show()
        sys.exit(app.exec_())

    案例12  综合示例

    import sys
    from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QFormLayout
    from PyQt5.QtGui import QIntValidator, QDoubleValidator, QFont
    from PyQt5.QtCore import Qt
    
    
    class LineEditDemo(QWidget):
        def __init__(self, parent=None):
            super().__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_())

                   

  • 相关阅读:
    GRIDVIEW导出到EXCEL
    数据表示:字节 高位低位
    js学习笔记0
    12奇招,循序删除顽固的文件
    加快开关机速度
    PHP正则表达式的快速学习
    firefox下height不能自动撑开的解决办法
    给MySQL加密(也适用于Wamp5中)
    我的电脑创建资源管理器
    css 圆角7种CSS圆角框解决方案
  • 原文地址:https://www.cnblogs.com/lynsha/p/13403162.html
Copyright © 2011-2022 走看看