from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class QLabelDemo(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QLabel範例") label1, label2, label3 = QLabel(self), QLabel(self), QLabel(self) #label1, label2, label3 = [QLabel(self) for i in range(3)] label1.setText("這是一個文字標籤") #設定標籤外顯文字 label1.setAlignment(Qt.AlignCenter) #置中顯示 label2.setToolTip('這是一個圖片標籤') #設定氣泡說明 label2.setPixmap(QPixmap("LINE_friends.gif")) #底圖設入標籤之中 #label2.setPixmap(QPixmap("LINE_friends.gif").scaled(400,400,Qt.KeepAspectRatio)) # ------ 開始:設定動畫 ------ # # movie = QMovie("LINE_friends.gif") #創建QMovie物件,載入動畫圖檔 # movie.setSpeed(100) #設定播放速度,100為原速,200為2倍速,依此類推 # movie.setScaledSize(QSize().scaled(400,400,Qt.KeepAspectRatio)) #設定大小 # movie.start() #開始播放,記得加這個指令,否則看不到圖案 # label2.setMovie(movie) #動畫物件嵌入label2標籤內 # ------ 結束:設定動畫 ------ # label3.setText("歡迎連結雲科大首頁") label3.setAlignment(Qt.AlignRight) #靠右顯示 label3.setToolTip('這是一個超連結標籤') vbox = QVBoxLayout() #創建垂直式佈局排版管理員 vbox.addWidget(label1) #利用.addWidget()逐一把元件加入版面,佈局管理員將自動排版 vbox.addStretch() #加入一個空的可伸展的透明框;有加或未加此指令有何差別,請同學觀察效果 vbox.addWidget(label2) vbox.addStretch() vbox.addWidget(label3) self.setLayout(vbox) #透過.setLayout()把佈局管理員排版好的內容設入主視窗 label3.setOpenExternalLinks(True) #開放允許存取超連結,預設是不允許 label3.linkActivated.connect(link_clicked) #點擊label3產生事件將連結至link_clicked()作處理 label3.linkHovered.connect(link_hovered) #滑鼠飛掠過label3產生事件將連結至link_hovered()作處理 def link_hovered(): print("滑鼠滑過標籤當下所觸發事件") def link_clicked(): print("滑鼠點擊標籤當下所觸發事件" ) if __name__ == "__main__": app = QApplication([]) win = QLabelDemo() win.show() app.exec_()