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:\\image\python.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:\\image\1.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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM