zoukankan      html  css  js  c++  java
  • PyQt5笔记之标签

    标签

    QLabel用于显示文本或图像。没有提供用户交互功能。标签的视觉外观可以通过各种方式进行配置,并且可以用于为另一个窗口小部件指定焦点助记键。

    一个QLabel可以包含以下任意内容类型:

    内容 设置
    纯文本 将普通字符串传递给setText()
    富文本 将包含富文本的字符传递给setText()
    像素图 QPixmap传递给setPixmap()
    电影 QMovie传递给setMovie()
    号码 intdouble传递给setNum(),它将数字转换为纯文本
    与空的纯文本相同,这是默认值,由clear()设置

    创建普通文本

    # _*_coding:utf-8 _*_
    
    import sys
    from PyQt5.QtWidgets import *
    
    class Win(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUi()
    
        def initUi(self):
            widget = QWidget(self)
            self.setCentralWidget(widget)
    
            word = """
            1. 前面的空白就是我设置的缩进: setWordWrap();
            2. 这是一段普通的文本: setText(); 
            3. 我还加了形状: setFrameStyle();
            4. 不仅如此,在窗口缩小到一定程度时,我还能自动换行喔: setIdent()
            5. 我已经连接到我的按钮伙伴,使用快捷键Alt+D模拟点击: setLayout()
            """
    
            self.label = QLabel(word, self)
            self.label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
            self.label.setIndent(50)
            self.label.setWordWrap(True)
    
            self.pushButton = QPushButton("我是按钮 (&D)", self)
            self.label.setBuddy(self.pushButton)
    
            self.layout = QVBoxLayout(self)
            self.layout.addWidget(self.label)
            self.layout.addWidget(self.pushButton)
            widget.setLayout(self.layout)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        win = Win()
        win.show()
        sys.exit(app.exec_())
    

    创建其他文本

    # _*_coding:utf-8 _*_
    
    from PyQt5.QtWidgets import *
    import sys
    
    class Win(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUi()
    
        def initUi(self):
            widget = QWidget(self)
            self.setCentralWidget(widget)
    
            word = """
            1. 前面的空白就是我设置的缩进: <b style="color:red">setWordWrap()</b>;<br>
            2. 这是一段普通的文本: <b style="color:red">setText()</b>;<br> 
            3. 我还加了形状: <b style="color:red">setFrameStyle()</b>;<br>
            4. 不仅如此,在窗口缩小到一定程度时,我还能自动换行喔: <b style="color:red">setIdent()</b>;<br>
            5. 我已经连接到我的按钮伙伴,使用快捷键Alt+D模拟点击: <b style="color:red">setLayout()</b>;<br>
            """
    
            self.label = QLabel(word, self)
            self.label.setFrameStyle(QFrame.Panel | QFrame.Sunken)
            self.label.setIndent(50)
            self.label.setWordWrap(True)
    
            self.pushButton = QPushButton("我是按钮 (&D)", self)
            self.label.setBuddy(self.pushButton)
    
            self.layout = QVBoxLayout(self)
            self.layout.addWidget(self.label)
            self.layout.addWidget(self.pushButton)
            widget.setLayout(self.layout)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        win = Win()
        win.show()
        sys.exit(app.exec_())
    

    代码一毛一样,就是文本变了

    创建图片标签

    # _*_coding:utf-8 _*_
    
    from PyQt5.QtWidgets import *
    import sys
    
    class Win(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUi()
    
        def initUi(self):
            widget = QWidget(self)
            self.setCentralWidget(widget)
    
            self.label = QLabel(self)
            self.label.setPixmap(QPixmap("D:\imagepython.png"))	# 添加图片
            self.label.setScaledContents(True)
    
            self.layout = QVBoxLayout(self)
            self.layout.addWidget(self.label)
            widget.setLayout(self.layout)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        win = Win()
        win.show()
        sys.exit(app.exec_())
    

    创建动画标签

    # _*_coding:utf-8 _*_
    
    from PyQt5.QtWidgets import *
    import sys
    
    class Win(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUi()
    
        def initUi(self):
            self.resize(700, 500)
            widget = QWidget(self)
            self.setCentralWidget(widget)
    
            self.label = QLabel(self)											# 创建一个空标签
            self.movie = QMovie("C:\Users\oliven\Desktop\jumpstar.gif")		# 动画路径
            self.label.setMovie(self.movie)										# 添加到label里
            self.label.setScaledContents(True)									# 缩放其内容以填充所有可用空间
            self.label.setFrameStyle(QFrame.Panel | QFrame.Sunken)				# 设置形状
            self.label.setIndent(50)											# 设置缩进
            self.label.setWordWrap(True)										# 设置自动换行
    
            self.pushButton = QPushButton("开始动画 (&D)", self)				# 创建按钮
            self.label.setBuddy(self.pushButton)							  # 为label加一个伙伴
            self.pushButton.clicked.connect(self.run)						  # 将按钮点击信号连接到槽
    
            self.layout = QVBoxLayout(self)					# 垂直布局
            self.layout.addWidget(self.label)				#将控件添加到布局
            self.layout.addWidget(self.pushButton)
            widget.setLayout(self.layout)			# 设置控件布局
    
        def run(self):
            self.movie.start()
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        win = Win()
        win.show()
        sys.exit(app.exec_())
    

    标签常用方法

    • QLabel().setAlignment():设置标签对齐方式

      • 例如:QLabel().setAlignment(Qt.AlignBottom)

      • 可用的参数:

        • Qt.AlignLeft:与左边缘对齐
        • Qt.ALignRight:与右边缘对齐
        • Qt.AlignHCenter:在可用空间中水平居中
        • Qt.AlignJustify:在可用空间中对齐文本
        • Qt.AlignTop:与顶部对齐
        • Qt.AlignBottom:与底部对齐
        • Qt.AlignVcenter:在可用控件中垂直居中
        • Qt.AlignBaseline:与基线对齐
        • Qt.AlignCenter:在两个维度上均居中
    • QLabel().setIndent():按当前对齐方式进行设置缩进

      • 例如:QLabel().setIndent(10),表示缩进10个
    • QLabel().setMargin():设置边距的宽度

      • 例如:QLabel().setMargin(10)
    • QLabel().setOpenExternalLinks():是否为超链接开启自动打开链接,而不是发出linkAction()信号

      • 例如:QLabel().setOpenExternalLinks(True)
    • QLabel().setPixmap():为标签设置一个图片

      • 例如:QLabel().setPixmap(QPixmap("C:\image1.png"))
    • QLabel().setScaledContents():是否将缩放其内容以填充所有可用空间;启用后,标签会显示一个像素图,它将缩放该像素图以填充可用空间。

      • 例如:QLabel().setScaledContents(True)
    • QLabel().setText():为标签设置一个文本

      • 例如:QLabel().setText("Hello World")
    • QLabel().setTextInteractionFlags():指定标签显示的文本如何与用户输入交互

      • 例如:QLabel().setTextInteractionFlags(Qt.TextSelectableByMouse):表示鼠标可以选中该标签的文字
      • 可用参数如下:
        • Qt.NoTextInteraction:无法与文字交互
        • Qt.TextSelectableByMouse:可以使用鼠标选择文本,然后使用上下文菜单或标准键盘快捷键将其复制到剪贴板。
        • Qt.TextSelectableByKeyboard:可以使用键盘上的光标键选择文本。显示一个文本光标。
        • Qt.LinksAccessibleByMouse:链接可以用鼠标突出显示并激活
        • Qt.LinksAccessibleByKeyboard:可以使用Tab键突出显示连接,并使Enter激活它。
        • Qt.TextEditorInteraction:文本编辑器的默认值:
          • TextSelectableByMouse
          • TextSelectableByKeyboard
          • TextEditable
        • Qt.TextBrowserInteractionQTextBrowser的默认值。
    • QLabel().setWordWrap():自动换行

      • 例如:QLabel().setWordWrpap(True)
    • QLabel().clear():清除所有标签内容

    • QLabel().linkActivated():单击链接时会发出此信号

      • 例如:QLabel().linkActivated.connect(self.func)self.func是自己创建的函数
    • QLabel().linkHovered():鼠标滑过链接时发出此信号

      • 例如:QLabel().linkHovered.connect(self.func)
    • QLabel().setMovie():为标签添加一个视频(这里添加一个GIF动图)

      • 例如:QLabel().setMoive(QMovie("C:\image\funny.gif"))
    • QLabel().setPicture():添加一个Picture

    • QLabel().setSelection():选择开始到结束的文本

      • 例如:QLabel().setSelection(1, 10)
  • 相关阅读:
    渣渣菜鸡的蚂蚁金服面试经历(一)
    20 个案例教你在 Java 8 中如何处理日期和时间?
    Spring Boot 2.0系列文章(七):SpringApplication 深入探索
    分布式锁看这篇就够了
    Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览
    20135337朱荟潼——实验三
    20135337朱荟潼Java实验报告二
    5337朱荟潼Java实验报告一
    Linux内核设计笔记12——内存管理
    Linux内核设计笔记11——定时器
  • 原文地址:https://www.cnblogs.com/liuhedong/p/11580193.html
Copyright © 2011-2022 走看看