一些你不能不知道的python标签~~~

86 阅读2分钟

标签控件你知道,但是图像标签、超链接标签带颜色的标签你知道吗?输入框标签你知道,但是有限制的文本框你知道吗?本文,带你来深入了解,Please~~~

image.png

今天实现控件的标签和输入框的控件。

1 标签控件

1.1 文本标签(基础标签)

文本标签是最基本的标签,只需要配置文字就可以了

 	label1=QLabel(self)
        label1.setText("文本标签")
	#允许用户通过鼠标选择label1中的文本
        label1.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)
        label1.move(10,10)

1.2 样式标签

可以对标签设置样式,添加css样式。

		label2=QLabel(self)
        label2.setText('<font size="6" color="skyblue">控制文本颜色背景颜色</font>')
        label2.setAlignment(Qt.AlignmentFlag.AlignCenter)
        label2.setAutoFillBackground(True)
        label2.move(10,40)
		#引入绘图板
        palette=QPalette()
		#添加白色背景
        palette.setColor(QPalette.ColorRole.Window, Qt.GlobalColor.white)
        label2.setPalette(palette)

image.png

1.3 图片标签

可以直接把图片放到标签的位置,实现图片预览效果。

    	    label3=QLabel(self)
            label3.move(10,80)
            label3.setToolTip('图片标签...')
            label3.setPixmap(QPixmap("./images/1.jpg"))
            label3.linkActivated.connect(self.clickedFunc)

image.png

1.4 超链接标签

其实和样式标签类似,只是添加了html的a标签而已。

    	    label4=QLabel(self)
            label4.move(10,280)
            label4.setText("<a href='https://blog.csdn.net/weixin_38298363'>请关注美男子</a>")
            label4.setAlignment(Qt.AlignmentFlag.AlignRight)
            label4.linkHovered.connect(self.hoveredFunc)

image.png

2 输入框标签

输入框标签里最人性化的是能够添加校验器Validator​

    		#定义表单布局
    		fLayout=QFormLayout()
    		#定义表单控件
            leBH=QLineEdit()
            leXM=QLineEdit()
            leMM=QLineEdit()
            leCSRQ=QLineEdit()
            leGL=QLineEdit()
            leJBGZ=QLineEdit()
            leIP=QLineEdit()
            leCH=QLineEdit()

            fLayout.addRow("编号:",leBH)
            fLayout.addRow("姓名:",leXM)
            fLayout.addRow("登录密码:",leMM)
            fLayout.addRow("出生日期:",leCSRQ)
            fLayout.addRow("工龄:",leGL)
            fLayout.addRow("基本工资:",leJBGZ)
            fLayout.addRow("本机IP地址:",leIP)
            fLayout.addRow("车号:",leCH)

接下来配置校验器和Mask效果

    	    # 编号只能为6位
            leBH.setPlaceholderText("编号为6位")
            leBH.setInputMask("999999")
            leMM.setPlaceholderText("密码是字母和数字组合")
            leMM.setEchoMode(QLineEdit.EchoMode.Password)
            #设置正则表达式进行校验密码
            reg=QRegularExpression("[a-zA-Z0-9]+$")
            mmValidator=QRegularExpressionValidator(self)
            mmValidator.setRegularExpression(reg)
            leMM.setValidator(mmValidator)
            # 工龄范围为1-45
            glIntValidator=QIntValidator(self)
            glIntValidator.setRange(1,45)
            leGL.setValidator(glIntValidator)
            jbDoubleleValidator=QDoubleValidator(self)
            #基本工资为浮点数
            jbDoubleleValidator.setRange(0.00,9999.99)
            jbDoubleleValidator.setNotation(QDoubleValidator.Notation.StandardNotation)
            jbDoubleleValidator.setDecimals(2)
            leJBGZ.setValidator(jbDoubleleValidator)
            #出生日期目前还没有查过9999年的
            leCSRQ.setInputMask("9999-00-00")
            #ipv4地址
            leIP.setInputMask("000.000.000.000")
            #车牌通常为七位
            leCH.setInputMask("XXXXXXX")

image.png