- PyQt 教程
- PyQt - 首頁
- PyQt - 簡介
- PyQt - 環境搭建
- PyQt - Hello World
- PyQt - 主要類
- PyQt - 使用 Qt Designer
- PyQt - 元物件
- PyQt 訊號與槽
- PyQt - 訊號和槽
- PyQt - 支援和訊號
- PyQt - 未繫結和已繫結訊號
- PyQt - 使用 PyQtSignal 建立新的訊號
- PyQt - 連線、斷開和發射訊號
- PyQt - 槽裝飾器
- PyQt - 槽連線
- PyQt 佈局
- PyQt - 佈局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基礎控制元件
- PyQt - 基礎控制元件
- PyQt - QLabel 控制元件
- PyQt - QLineEdit 控制元件
- PyQt - QPushButton 控制元件
- PyQt - QRadioButton 控制元件
- PyQt - QCheckBox 控制元件
- PyQt - QComboBox 控制元件
- PyQt - QSpinBox 控制元件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控制元件
- PyQt - QFontComboBox 控制元件
- PyQt - QDoubleSpinBox 控制元件
- PyQt - QToolBox 控制元件
- PyQt - QDialog 類
- PyQt - QMessageBox
- PyQt - 多文件介面
- PyQt - 拖放
- PyQt 繪圖 API
- PyQt - 繪圖 API
- PyQt 資料庫
- PyQt - 資料庫操作
- PyQt 核心要點
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 類
- PyQt 有用資源
- PyQt - 快速指南
- PyQt - 有用資源
- PyQt - 討論
PyQt - QLabel 控制元件
一個QLabel物件充當佔位符,用於顯示不可編輯的文字或影像,或動畫 GIF 電影。它也可以用作其他小部件的助記鍵。標籤可以顯示純文字、超連結或富文字。
什麼是 QLabel?
在 PyQt 中,QLabel 類用於建立標籤小部件,這些小部件能夠向用戶呈現靜態文字、影像或動畫影像(GIF)。它具有簡單的介面和強大的功能。它是設計其他直觀且視覺上吸引人的 PyQt 應用程式的基礎構建塊。
QLabel 入門
要在您的 PyQt 應用程式中開始使用 QLabel 小部件,我們需要遵循以下基本步驟:
匯入 QLabel
首先,從 PyQt6.QtWidgets 模組匯入 QLabel 小部件。此步驟允許您在 Python 指令碼中訪問 QLabel 的功能。
from PyQt6.QtWidgets import QLabel
建立 QLabel 例項
在此步驟中,例項化一個新的 QLabel 物件。您可以透過將其作為引數傳遞給 QLabel 建構函式來指定要在標籤中顯示的初始文字。
label = QLabel('This is a QLabel widget')
自定義 QLabel(可選)
PyQt 允許您使用 setText() 等方法進一步自定義 QLabel 小部件,以動態更改顯示的文字。
顯示 QLabel
最後,將 QLabel 小部件整合到 PyQt 應用程式的佈局中,並確保使用者可以看到它。
layout.addWidget(label)
下表列出了 QLabel 類中定義的重要方法:
以下是 QLabel 最常用的方法。
| 序號 | 方法及說明 |
|---|---|
| 1 |
setAlignment() 根據對齊常量對齊文字 Qt.AlignLeft Qt.AlignRight Qt.AlignCenter Qt.AlignJustify |
| 2 |
setIndent() 設定標籤文字縮排 |
| 3 |
setPixmap() 顯示影像 |
| 4 |
text() 顯示標籤的標題 |
| 5 |
setText() 以程式設計方式設定標題 |
| 6 |
selectedText() 顯示標籤中選定的文字(必須將 textInteractionFlag 設定為 TextSelectableByMouse) |
| 7 |
setBuddy() 將標籤與任何輸入小部件關聯 |
| 8 |
setWordWrap() 啟用或停用在標籤中換行文字 |
QLabel 類的訊號
| linkActivated | 如果包含嵌入式超連結的標籤被點選,則 URL 將開啟。必須將 setOpenExternalLinks 功能設定為 true。 |
| linkHovered | 當滑鼠懸停在包含嵌入式超連結的標籤上時,與此訊號關聯的槽方法將被呼叫。 |
示例
在此示例中,QLabel 物件 l2 和 l4 的標題包含超連結。l2 的 setOpenExternalLinks 設定為 true。因此,如果單擊此標籤,則關聯的 URL 將在瀏覽器中開啟。l4 的 linkHovered 訊號連線到 hovered() 函式。因此,每當滑鼠懸停在其上時,該函式都會執行。
QPixmap 物件從 python.jpg 檔案準備螢幕外影像。它使用 setPixmap() 方法顯示為標籤 l3。
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
def window():
app = QApplication(sys.argv)
win = QWidget()
l1 = QLabel()
l2 = QLabel()
l3 = QLabel()
l4 = QLabel()
l1.setText("Hello World")
l4.setText("TutorialsPoint")
l2.setText("welcome to Python GUI Programming")
l1.setAlignment(Qt.AlignCenter)
l3.setAlignment(Qt.AlignCenter)
l4.setAlignment(Qt.AlignRight)
l3.setPixmap(QPixmap("python.jpg"))
vbox = QVBoxLayout()
vbox.addWidget(l1)
vbox.addStretch()
vbox.addWidget(l2)
vbox.addStretch()
vbox.addWidget(l3)
vbox.addStretch()
vbox.addWidget(l4)
l1.setOpenExternalLinks(True)
l4.linkActivated.connect(clicked)
l2.linkHovered.connect(hovered)
l1.setTextInteractionFlags(Qt.TextSelectableByMouse)
win.setLayout(vbox)
win.setWindowTitle("QLabel Demo")
win.show()
sys.exit(app.exec_())
def hovered():
print "hovering"
def clicked():
print "clicked"
if __name__ == '__main__':
window()
輸出
以上程式碼產生以下輸出:
讓我們看一些示例,並瞭解如何使用 QLabel。
使用 QLabel 顯示文字
此 PyQt6 程式碼定義了一個簡單的 GUI 應用程式,該應用程式包含一個顯示 QLabel 小部件的單個視窗,其中包含文字“這是一個 QLabel 小部件”。視窗的標題設定為“PyQt Label Widget”,大小為 320x210 畫素。QLabel 新增到 QVBoxLayout,然後將其設定為視窗的佈局。
示例
以下是使用 QLabel 顯示文字的圖示。
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('PyQt Label Widget')
self.setGeometry(100, 100, 320, 210)
label = QLabel('This is a QLabel widget')
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
輸出
以上程式碼產生以下輸出:
使用 QLabel 顯示影像
要使用 QLabel 顯示影像,請遵循以下步驟:
- 從 PyQt6.QtGui 匯入 QPixmap。
- 使用影像檔案的路徑建立一個 QPixmap 物件。
- 建立一個 QLabel 小部件並使用 setPixmap() 設定 pixmap。
示例
以下是使用 QLabel 顯示簡單影像的圖示。
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt6.QtGui import QPixmap
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('PyQt Label Widget')
self.setGeometry(100, 100, 320, 210)
label = QLabel()
pixmap = QPixmap('C:\\Users\\Lenovo\\Downloads\\tp-logo.png')
label.setPixmap(pixmap)
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
輸出
以上程式碼產生以下輸出:
使用 QLabel 顯示動畫影像
此 PyQt6 程式碼建立一個標題為“PyQt QLabel Widget”的 GUI 視窗,尺寸為 320x210 畫素。它使用 QMovie 支援的 QLabel 小部件顯示動畫 GIF('python.gif')。GIF 新增到 QVBoxLayout,用作視窗的佈局,應用程式進入主事件迴圈,直到視窗關閉,確保連續播放動畫。
示例
以下是使用 QLabel 顯示動畫影像的圖示。
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt6.QtGui import QMovie
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('PyQt QLabel Widget')
self.setGeometry(100, 100, 320, 210)
label = QLabel()
movie = QMovie('C:\\Users\\Lenovo\\Downloads\\geometric.gif')
label.setMovie(movie)
movie.start()
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
輸出
以上程式碼產生以下輸出: