• PyQt5 QLabel控件



    QLabel 就是常见的标签,可以用来显示文字(包括纯文本和富文本),图片及动画。

    QLabel常用方法

    方法描述
    margin保存 QLabel 控件中内容与边框之间的距离(边距),margin 的默认值为 0
    setMargin()修改QLabel 控件中内容与边框之间的距离(边距)
    alignment()获得QLabel 控件中内容的对齐方式,默认情况下,QLabel 控件中的内容保持左对齐和垂直居中
    该属性的值可以通过调用 alignment() 方法获得,可以借助 setAlignment() 方法修改。
    setAlignment设置文本的对齐方式
    Qt.AlignLeft:水平方向靠左对齐
    Qt.AlignRight:水平方向靠右对齐
    Qt.AlignCenter:水平方向居中对齐
    Qt.AlignJustify:水平方向调整间距两端对齐
    Qt.AlignTop:垂直方向靠上对齐
    Qt.AlignBottom:垂直方向靠下对齐
    Qt.AlignVCenter:垂直方向居中对齐
    setIndent()设置文本缩进值
    setPixmap()setPixmap()
    text()获得 Qlabel 的文本内容
    setText()设置 Qlabel 的文本内容
    selectedText()返回所选择的字符
    setBuddy()设置 QLabel的buddy(伙伴),及使用 Qlabel 设置快捷键,会在快捷键后将焦点设置到其 buddy 上,这里用到了 Qlabel 的交互控件功能,其 Qlabel 必须是文本内容,并且使用 “&” 符号快捷键
    setWordWrap()设置是否允许换行
    hide()隐藏文本框
    clear()清空 QLabel 控件内所有显示的内容
    setToolTip(QString)设置信息提示,当用户的鼠标放在QLabel 文本框上时会自动跳出文字
    setToolTipDuration(int)设置提示信息出现的时间,单位是毫秒
    setStyleSheet(QString)设置 QLabel 文本框的样式
    setGeometry(int x, int y, int w, int h)设置 QLabel 文本框的位置 (x, y) 以及尺寸 (w, h)
    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.Qt import *
    from PyQt5.QtGui import QFont
    
    
    class Set_qlabel(QWidget):
        def __init__(self):
            super().__init__()
            self.init_ui()
    
        def init_ui(self):
            self.setGeometry(500, 500, 500, 500)
            label1 = QLabel("姓名:", self)
            label1.setGeometry(50, 50, 200, 50)
            font1 = QFont("隶书", pointSize=20)
            label1.setFont(font1)
            label1.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
    
            label2 = QLabel("班级:", self)
            label2.setGeometry(50, 200, 200, 50)
            font2 = QFont("楷体", pointSize=12)
            label2.setFont(font2)
            label2.setStyleSheet("color:red")
            label2.setMargin(15)
    
            print(label2.margin(), label2.alignment(), label2.indent(), label2.text())
            #label2.setStyleSheet("color:#ff6600;")
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        widget = Set_qlabel()
        widget.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    在这里插入图片描述

    import sys
    from PyQt5.Qt import *
    
    
    class QlabelClass(QWidget):
        def __init__(self):
            super().__init__()
            
            self.lb1 = QLabel('学点python不难!', self)
            self.lb2 = QLabel('我内容不换行', self)
            self.lb3 = QLabel('我内容会自动换行', self)
            self.lb3.setWordWrap(True)
    
            self.bt1 = QPushButton('输入内容1', self)
            self.bt2 = QPushButton('输入内容2', self)
    
            layout1 = QVBoxLayout()
            layout1.addWidget(self.lb1)
            layout1.addWidget(self.lb2)
            layout1.addWidget(self.lb3)
            layout1.addWidget(self.bt1)
            layout1.addWidget(self.bt2)
    
            self.bg1 = QButtonGroup(self)
            self.ra1 = QRadioButton('左边', self)
            self.ra2 = QRadioButton('中间', self)
            self.ra3 = QRadioButton('右边', self)
    
            self.bg1.addButton(self.ra1, 1)
            self.bg1.addButton(self.ra2, 2)
            self.bg1.addButton(self.ra3, 3)
    
            layout2 = QHBoxLayout()
            layout2.addWidget(self.ra1)
            layout2.addWidget(self.ra2)
            layout2.addWidget(self.ra3)
    
            layout3 = QVBoxLayout()
            layout3.addLayout(layout1)
            layout3.addLayout(layout2)
            self.setLayout(layout3)
    
            self.bg1.buttonClicked.connect(self.rb_clicked)
            self.bt1.clicked.connect(self.show_dialog)
            self.bt2.clicked.connect(self.show_dialog)
    
        def rb_clicked(self):
            if self.bg1.checkedId() == 1:
                self.lb1.setAlignment(Qt.AlignVCenter | Qt.AlignLeft)
            elif self.bg1.checkedId() == 2:
                self.lb1.setAlignment(Qt.AlignCenter)
            elif self.bg1.checkedId() == 3:
                self.lb1.setAlignment(Qt.AlignVCenter | Qt.AlignRight)
    
        def show_dialog(self):
            sender = self.sender()
            if sender == self.bt1:
                text, ok = QInputDialog.getText(self, '内容1', '请输入内容1:')
                if ok:
                    self.lb2.setText(text)
            elif sender == self.bt2:
                text, ok = QInputDialog.getText(self, '内容2', '请输入内容2:')
                if ok:
                    self.lb3.setText(str(text))
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        widget = QlabelClass()
        widget.setGeometry(100, 100, 100, 100)
        widget.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    在这里插入图片描述

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    
    
    class QlabelClass(QWidget):
        def __init__(self):
            super().__init__()
            pix = QPixmap('dog.png')
            lb1 = QLabel(self)
            lb1.setGeometry(0, 0, 700, 300)
            lb1.setPixmap(pix)
            lb1.setStyleSheet("border: 2px solid red")
    
            lb2 = QLabel(self)
            lb2.setGeometry(0, 300, 300, 300)
            lb2.setPixmap(pix)
            lb2.setStyleSheet("border: 2px solid red")
            lb2.setScaledContents(True)
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        widget = QlabelClass()
        widget.setGeometry(100, 100, 700, 600)
        widget.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    在这里插入图片描述

    显示动画

    • movie = QMovie(“th.gif”) 创建QMovie对象。
    • self.lb.setMovie(movie),要在Qlabel显示电影,将QMovie对象传递给QLabel.setMovie()
    • movie.start() 开始播放
    • movie.stop() 停止播放
    • setPaused() 暂停播放

    超链接

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    
    
    class QlabelClass(QWidget):
        def __init__(self):
            super().__init__()
            self.lb = QLabel(self)
            self.lb.setGeometry(50, 50, 300, 200)
            self.bt1 = QPushButton('开始', self)
            self.bt1.setGeometry(0, 0, 100, 30)
            self.bt2 = QPushButton('停止', self)
            self.bt2.setGeometry(300, 0, 100, 30)
            self.lb2 = QLabel(self)
            self.lb2.setText("感谢关注菜鸟教程")
            vbox = QVBoxLayout()
            vbox.addWidget(self.lb)
            vbox.addWidget(self.bt1)
            vbox.addWidget(self.bt2)
            vbox.addWidget(self.lb2)
            self.setLayout(vbox)
            # 显示的开始什么
            self.pix = QPixmap('th.gif')
            self.lb.setPixmap(self.pix)
            self.lb.setScaledContents(True)
            self.bt1.clicked.connect(self.run)
            self.bt2.clicked.connect(self.run)
            self.lb2.linkActivated.connect(self.link_clicked)
            self.lb2.linkHovered.connect(self.link_hovered)
            self.lb2.setOpenExternalLinks(True)
    
        def link_clicked(self):
            print("点击了超链接")
    
        def link_hovered(self):
            self.lb2.setToolTip("鼠标滑过")
    
        def run(self):
            movie = QMovie("th.gif")
            self.lb.setMovie(movie)
            if self.sender() == self.bt1:
                movie.start()
            else:
                movie.stop()
                self.lb.setPixmap(self.pix)
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        widget = QlabelClass()
        widget.setGeometry(100, 100, 400, 400)
        widget.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    在这里插入图片描述

    QLabel常用信号

    • linkHovered(): 当鼠标滑过Qlabel时触发。
    • linkActivated(): 当鼠标点击Qlabel时触发。
  • 相关阅读:
    2023年腾讯云双11活动入口在哪里?
    CorelDRAW 2022中文精简64位直装版下载
    NI Package Manager创建程序包
    一站式动态多环境建设案例
    Uniapp 解决组件在官方文档不支持的事件上,接收小程序原生组件事件
    ps怎么替换颜色,自学ps软件photoshop2022,ps一张图片的一种颜色全部替换成另外一种颜色
    在线电子表格spreadjs
    理解参数传递
    060:mapboxGL点击某处,通过flyTo,以动画的形式聚焦到此点
    华为设备DLDP配置命令
  • 原文地址:https://blog.csdn.net/weixin_48668114/article/details/126909329