PyQt5-QLabel控件使用

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_())

原文地址:https://www.cnblogs.com/ygzhaof/p/10057722.html