QLabel對象作為一個占位符可以顯示不可編輯的文本或者圖片,也可以放一個gif動畫,還可以作為一個提示標記作為其他控件;
該標簽可以放純文本,鏈接或者富文本信息;
繼承關系如下:
QObject---+
QPaintDevice--+
QWidget--+
QFrame--+
+---QLabel
常用方法:
常用信息方法:
例如:
1 #QLabel控件使用 2 from PyQt5.QtWidgets import QApplication,QLabel,QWidget,QVBoxLayout 3 from PyQt5.QtCore import Qt 4 from PyQt5.QtGui import QPixmap,QPalette 5 import sys 6 7 class WindowDemo(QWidget): 8 def __init__(self): 9 super().__init__() 10 self.label_1=QLabel(self) 11 self.label_1.setText("這是一個文本標簽!<a href='www.baidu.com' style='color:red'>百度</a>") 12 self.label_1.setAutoFillBackground(True) 13 self.palette=QPalette() 14 self.palette.setColor(QPalette.Window,Qt.blue) 15 self.label_1.setPalette(self.palette) 16 self.label_1.setAlignment(Qt.AlignCenter) 17 18 self.label_1.setOpenExternalLinks(True) #允許訪問超鏈接 19 #self.label_1.setTextInteractionFlags(Qt.TextSelectableByMouse)#設置文字是否可被選中,設置后link_hovered失效 20 self.label_1.linkHovered.connect(self.link_hovered)#針對鏈接光標略過 21 self.label_1.linkActivated.connect(self.link_clicked)#針對鏈接點擊事件 22 23 self.label_2=QLabel(self) 24 self.label_2.setPixmap(QPixmap('./image/baidu.png'))#設置圖標,與文字沖突,則setText的文字不顯示 25 26 self.vbox=QVBoxLayout() 27 self.setLayout(self.vbox) 28 self.vbox.addWidget(self.label_1) 29 self.vbox.addWidget(self.label_2) 30 self.vbox.addStretch() 31 32 def link_hovered(self): 33 print("光標滑過Label_1觸發事件") 34 def link_clicked(self): 35 print("點擊時觸發事件") 36 37 if __name__=="__main__": 38 app=QApplication(sys.argv) 39 win=WindowDemo() 40 win.show() 41 sys.exit(app.exec_())
QLabel設置快捷鍵:
1 #QLabel標簽的快捷鍵設置 2 from PyQt5.QtWidgets import QApplication,QLabel,QWidget,QVBoxLayout,QPushButton,QLineEdit,QHBoxLayout,QGridLayout 3 from PyQt5.QtCore import Qt 4 from PyQt5.QtGui import QPixmap,QPalette 5 import sys 6 7 class Qlabel_demo(QWidget): 8 def __init__(self,parent=None): 9 super(Qlabel_demo,self).__init__(parent) 10 nameL_1=QLabel("&Name",self) 11 nameE_1=QLineEdit(self) 12 nameL_1.setBuddy(nameE_1) 13 14 nameL_2=QLabel("&Password",self) 15 nameE_2=QLineEdit(self) 16 nameL_2.setBuddy(nameE_2)#設置該Label與誰配對(使用alt+n快捷鍵) 17 18 btnOk=QPushButton("&OK") 19 btnCancel=QPushButton("&Cancel") 20 mainLayout=QGridLayout(self) 21 mainLayout.addWidget(nameL_1,0,0)#控件名,行,列,占用行數,占用列數,對齊方式 22 mainLayout.addWidget(nameE_1,0,1,1,2) 23 mainLayout.addWidget(nameL_2,1,0) 24 mainLayout.addWidget(nameE_2,1,1,1,2) 25 mainLayout.addWidget(btnOk,2,1) 26 mainLayout.addWidget(btnCancel,2,2) 27 28 if __name__=="__main__": 29 app=QApplication(sys.argv) 30 win=Qlabel_demo() 31 win.show() 32 sys.exit(app.exec_())