• GUI学习之三十一—QLabel学习总结


    前面所有的控件都是归于输入控件的,下面我们要总结下展示控件的用法。首先要将的就是最常用的QLabel。

    一.描述

       标签控件(QLabel)提供了文本或图像显示的功能,可以用来显示

      普通文本

      数字

      富文本

      图片

      动画(GIF)

      等等

      但是他没有提供用户交互功能(但是有些时候的富文本里的超链接是可以点击的)

      QLabel是继承子QFrame,可以对框架进行操作

    二.功能作用

      基础的功能我们在前面已经使用过了,剩下的我们在了解一下:

      1.对齐

    QLabel.setAlignment(self, a0: typing.Union[QtCore.Qt.Alignment, QtCore.Qt.AlignmentFlag])
    QLabel.alignment() -> QtCore.Qt.Alignment
    AlignLeft = ...  # type: 'Qt.AlignmentFlag'
    AlignLeading = ...  # type: 'Qt.AlignmentFlag'
    AlignRight = ...  # type: 'Qt.AlignmentFlag'
    AlignTrailing = ...  # type: 'Qt.AlignmentFlag'
    AlignHCenter = ...  # type: 'Qt.AlignmentFlag'
    AlignJustify = ...  # type: 'Qt.AlignmentFlag'
    AlignAbsolute = ...  # type: 'Qt.AlignmentFlag'
    AlignHorizontal_Mask = ...  # type: 'Qt.AlignmentFlag'
    AlignTop = ...  # type: 'Qt.AlignmentFlag'
    AlignBottom = ...  # type: 'Qt.AlignmentFlag'
    AlignVCenter = ...  # type: 'Qt.AlignmentFlag'
    AlignVertical_Mask = ...  # type: 'Qt.AlignmentFlag'
    AlignCenter = ...  # type: 'Qt.AlignmentFlag'
    AlignBaseline = ...  # type: 'Qt.AlignmentFlag'
    对齐的枚举值

      2.缩进和边距

    QLabel.setIndent(self, a0: int) #缩进
    QLabel.indent() -> int
    QLabel.setMargin(self, a0: int) #上左下右保留的间距
    QLabel.margin() -> int

      3.文本格式

      QLabel默认设置的文本是富文本格式,在初始化里如果有富文本是直接按照富文本格式显示的,如果我们想直接显示纯文本的话就要设置他本身的格式了。

    QLabel.setTextFormat(self, a0: QtCore.Qt.TextFormat)
    PlainText = ...  # type: 'Qt.TextFormat'
    RichText = ...  # type: 'Qt.TextFormat'
    AutoText = ...  # type: 'Qt.TextFormat'

      4.小伙伴设置

      在有些时候是这样的效果

      每个label对应一个QLineedit,注意label里是有快捷键对应的,这就是小伙伴设置的作用,在使用了快捷键可以完成文本框输入的切换

    QLabel.setBuddy(self, a0: QWidget)

      上面的类似登录的对话框的代码如下

    from PyQt5.Qt import *
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.resize(800,600)
            self.UI_test()
    
    
        def UI_test(self):
            label_1 = QLabel('账号&a',self)
            label_2 = QLabel('密码&b',self)
    
            le1 = QLineEdit(self)
            le2 = QLineEdit(self)
    
            label_1.move(100,100)
            label_2.move(100,150)
    
            le1.move(150,100)
            le2.move(150,150)
    
            label_1.setBuddy(le1)
            label_2.setBuddy(le2)
            pass
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Window()
        window.show()
        sys.exit(app.exec_())
    小伙伴设置

      5.内容缩放

      有些时候标签控件用来显示图片,但是图片太小时候需要把图片进行缩放(不改变label的尺寸)

    QLabel.setScaledContents(self, a0: bool)

      设置后图片是按QLabel的尺寸缩放后显示。

      6.文本交互标志

    QLabel.setTextInteractionFlags(self, flags: typing.Union[QtCore.Qt.TextInteractionFlags, QtCore.Qt.TextInteractionFlag])
    type: 'Qt.TextInteractionFlag'
    NoTextInteraction = ...  # 不能交互
    TextSelectableByMouse = ...  # 可以用鼠标选中
    TextSelectableByKeyboard = ...  # 可以用键盘选中
    LinksAccessibleByMouse = ...  # 可以用鼠标突出显示和激活链接
    LinksAccessibleByKeyboard = ...  # 可以使用选项卡聚焦链接并用enter激活
    TextEditable = ...  # 可编辑
    TextEditorInteraction = ...  # 文本编辑器的默认值
    TextBrowserInteraction = ...  # QTextBrowser的默认值

      这个其实是没什么用的,因为如果需要进行文本交互了我们可以用QLineEdit之类的控件而没必要用这个。

      7.选中文本

      直接通过代码实现文本的选中效果

    QLabel.setSelection(self, a0: int, a1: int)#a0为起始位置,a1为长度
    QLabel.hasSelectedText()—>bool
    QLabel.selectedText()—>str
    QLabel.selectionStart()—>int

      同上一条,用处不大。

      8.外部链接

      有些时候标签上显示的是超链接,但是只有设置了允许外部链接才可以打开对应的网页

    QLabel.setOpenExternalLinks(self, open: bool)

      下面的方法就可以打开百度的网页,否则鼠标指向链接时箭头会变成手指,但点击以后无法打开对应网页

    label = QLabel('<a href = www.baidu.com>百度</a>', self)
    label.setOpenExternalLinks(True)

      9.换行

    QLabel.setWordWrap(self, on: bool)

      开启换行后会在单词结尾换行,这里插播一个用法:默认情况label里的字都是横着排的,如果我们想让字按竖着的方法显示,自带的方法是不行的,我们可以这样做

    label = QLabel('
    '.join('123456789'),self)

      这样出来的效果就是这样的(忽略颜色和字体,为了显示效果)

    三.信号

      由于一般情况都没有交互的功能,QLabel控件的信号比较少,最常用的就是超链接的点击

    QLabel.linkHovered(self, link: str)   #鼠标指向超链接
    QLabel.linkActivated(self, link: str) #鼠标点击超链接

      信号传递参数为超链接的字符串。但是要注意一点:如果前面设置了允许打开外部链接,点击超链接的信号是不会被触发的(指向依旧被触发)。

    四.内容操作

      不同的数据类型的设置方法是不同的,我们就不用再转换了

    #字符串
    QLabel.setText()
    QLabel.text()
    #数字
    QLabel.setNum()
    #图形图像
    QLabel.setPicture(self, a0: QtGui.QPicture)   
    QLabel.setPixmap(self, a0: QtGui.QPixmap)
    #动图
    QLabel.setMovie()
    #清空所有内容
    QLabel.clear()
    label = QLabel(self)
    pic = QPicture()
    painter = QPainter(pic)
    painter.setBrush(QBrush(QColor(255,255,255)))
    painter.drawEllipse(20,20,200,200)
    label.setPicture(pic)
    设置图像
    label = QLabel(self)
    movie = QMovie(r'C:UsersAaronDesktop	est249093-2.gif')
    label.setMovie(movie)
    movie.start()
    设置动图

      动图里的QMovie还有几个方法要讲一下,作用直接看名字就知道了

    QMovie.setScaledSize(self, size: QtCore.QSize)
    QMovie.setSpeed(self, percentSpeed: int)#播放速度
    QMovie.setPaused(self, paused: bool)
    QMovie.stop()
    QMovie.start()
  • 相关阅读:
    ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
    关于异常Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
    php 利用fsockopen GET/POST 提交表单及上传文件
    php发送get、post请求获取内容的几种方法
    修改WampServer的默认端口
    SQL Server2008附加数据库之后显示为只读时解决方法
    Linux一键安装web环境全攻略(阿里云服务器)
    如何从Windows远程上传文件到Linux(例如CentOS 7)
    在CentOS上搭建PHP服务器环境
    linux(系统centos6.5)常用命令总结
  • 原文地址:https://www.cnblogs.com/yinsedeyinse/p/11607421.html
Copyright © 2020-2023  润新知