從零開始的PyQt5 - QLabel篇
- 引言
- 一、簡述
- 二、例程
- 2.1 顯示到QWidget窗口上
- 2.2 重新設置Label大小和對齊方式
- 2.3 添加內容,設置邊框
- 2.4 顯示富文本
- 三、參考
引言
QLabel主要用于顯示文本或圖像,不提供用戶交互功能。本文主要簡述PyQt5中的QLabel以及展示常用例程。
一、簡述
QLabel可以包含以下任何內容類型:
內容 | 設置方法 |
---|---|
普通文本 | 調用setText() ,傳遞QString |
富文本 | 調用setText() ,傳遞包含富文本的QString |
圖片 | 調用setPixmap() ,傳遞QPixmap |
動畫 | 調用setMovie() ,傳遞QMovie |
數字 | 調用setNum() ,傳遞int 或double ,和setText 類似 |
空 | 調用clear() ,與空白純文本相同 |
- QLable會嘗試猜測輸入的QString是以純文本還是富文本,需確保輸入格式正確,最好顯式調用
setTextFormat()
(默認Qt::AutoText
,可手動傳遞Qt::PlainText
和Qt::RichText
)。- 默認顯示
左對齊
、垂直居中
的文本和圖像,其中要顯示的文本中的任何選項卡都會自動展開。其外觀可以通過多種方式進行調整和微調。
二、例程
2.1 顯示到QWidget窗口上
-
效果展示
-
源碼
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel('Hello, QLabel!', self) # 創建一個標簽設置文本,添加到此窗口中 (父窗口設置為此窗口)label.setAlignment(Qt.AlignCenter) # 文本居中對齊self.setGeometry(300, 300, 400, 100) # 設置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
2.2 重新設置Label大小和對齊方式
-
效果展示
-
源碼
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel('Hello, QLabel!', self) # 創建一個標簽設置文本,添加到此窗口中 (父窗口設置為此窗口)label.setAlignment(Qt.AlignBottom | Qt.AlignRight) # 文本靠右下label.resize(300, 100) # 設置大小self.setGeometry(300, 300, 400, 100) # 設置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
2.3 添加內容,設置邊框
-
效果展示
-
源碼
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QFrame
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel(self) # 創建一個標簽設置文本,添加到此窗口中 (父窗口設置為此窗口)label.setText("first line\nsecond line") # 設置內容label.setAlignment(Qt.AlignCenter) # 居中label.resize(300, 100) # 設置大小self.setGeometry(300, 300, 400, 100) # 設置窗口的布局label.setStyleSheet("QLabel {" # 設置邊框" border: 2px solid red;"" border-radius: 5px;""}")self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
2.4 顯示富文本
- 效果展示
- 源碼
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QFrame
from PyQt5.QtCore import Qtclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):label = QLabel(self) # 創建一個標簽設置文本,添加到此窗口中 (父窗口設置為此窗口)label.setText("<b>加粗</b> <i>斜體</i> <u>下劃線</u>") # 設置內容label.setAlignment(Qt.AlignCenter) # 居中label.resize(300, 100) # 設置大小self.setGeometry(300, 300, 400, 100) # 設置窗口的布局self.show()if __name__ == '__main__':app = QApplication(sys.argv)ex = ExampleApp()sys.exit(app.exec_())
三、參考
【Qt筆記】QLabel控件詳解:https://blog.csdn.net/qq_52924376/article/details/141430178
PyQt5深入解析:QLabel的靈活多變:https://blog.csdn.net/babybin/article/details/135775452
PyQt5控件介紹【標簽控件】-QLabel:https://zhuanlan.zhihu.com/p/677135910