# -*- coding: utf-8 -*-
'''
【簡介】
PyQT5中Qlabel範例
'''
from PyQt5.QtWidgets import QApplication, QLabel ,QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap ,QPalette
import sys
class WindowDemo(QWidget):
def __init__(self ):
super().__init__()
label1 = QLabel(self)
label2 = QLabel(self)
label3 = QLabel(self)
label4 = QLabel(self)
#1 初始化標籤控制項
label1.setText("這是一個文字標籤。")
label1.setAutoFillBackground(True)
palette = QPalette()
palette.setColor(QPalette.Window,Qt.blue)
label1.setPalette(palette)
label1.setAlignment( Qt.AlignCenter)
label2.setText("歡迎使用Python GUI應用程式")
label3.setAlignment( Qt.AlignCenter)
label3.setToolTip('這是一個圖片標籤')
label3.setPixmap( QPixmap("./images/python.jpg"))
label4.setText("歡迎連結信平的小屋")
label4.setAlignment( Qt.AlignRight)
label4.setToolTip('這是一個超連結標籤')
#2 在視窗佈局中加入控制項
vbox = QVBoxLayout()
vbox.addWidget(label1)
vbox.addStretch()
vbox.addWidget(label2)
vbox.addStretch()
vbox.addWidget( label3 )
vbox.addStretch()
vbox.addWidget( label4)
#3 允許label1控制項存取超連結
label1.setOpenExternalLinks(True)
# 開放允許存取超連結,預設是不允許,必須透過 setOpenExternalLinks(True)開放
label4.setOpenExternalLinks( False )
# 點擊文字方塊繫結槽事件
label4.linkActivated.connect( link_clicked )
# 滑過文字方塊繫結槽事件
label2.linkHovered.connect( link_hovered )
label1.setTextInteractionFlags( Qt.TextSelectableByMouse )
self.setLayout(vbox)
self.setWindowTitle("QLabel範例")
def link_hovered():
print("當滑鼠滑過label-2標籤時,觸發事件。")
def link_clicked():
print("當用滑鼠點擊label-4標籤時,觸發事件。" )
if __name__ == "__main__":
app = QApplication(sys.argv)
win = WindowDemo()
win.show()
sys.exit(app.exec_())