介绍
QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件。纯文本、链接或富文本可以显示在标签上。
方法
QlabeL常用方法
方法 | 描述 |
---|---|
setAlignment() | 按固定值方法对齐文本 Qt.AlignLeft,水平方向靠左对齐 Qt.AlignRight,水平方向靠右对齐 Qt.AlignCenter,水平方向居中对齐 Qt.AlignJustify,水平方向调整间距两端对齐 Qt.AlignTop,垂直方向靠上对齐 Qt.AlignButton,垂直方向靠下对齐 Qt.AlignVCenter,垂直方向居中对齐 |
setIndent() | 设置文本缩进值 |
setPixmap() | 设置QLabel为一个Pixmap图片 |
text() | 获得QLabel的文本内容 |
setText() | 试着QLabel的文本内容 |
selectedText() | 返回所选择的字符 |
setBuddy() | 设置QLabel的助记符及buddy(伙伴),即使用QLabel设置快捷键,会在快捷键后将焦点设置到期buddy上,这里用到了QLabel的交互控件功能。此外,buddy可以是任何一个Widget控件。使用setBuddy(QWidget *)设置,其QLabel必须是文本内容,并且使用"&"符号设置了助记符 |
setWordWrap() | 设置是否允许换行 |
信号
方法 | 描述 |
---|---|
linkActivated | 当单击标签中嵌入的超链接,希望在新窗口中打开这个超链接时,setOpenExternalLinks特征必须设置为true |
linkHovered | 当鼠标指针划过标签中国嵌入的超链接时,需要用槽函数与这个信号进行绑定 |
显示QLable标签
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("<a href='#'>欢迎使用Python GUI 应用</a>")
label3.setAlignment( Qt.AlignCenter)
label3.setToolTip('这是一个图片标签')
label3.setPixmap( QPixmap("./images/python.jpg"))
label4.setText("<A href='http://www.cnblogs.com/wangshuo1/'>欢迎访问信平的小屋</a>")
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.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_())
显示QLable标签展示
QLabel标签快捷键的使用
from PyQt5.QtWidgets import *
import sys
class QlabelDemo(QDialog):
def __init__(self ):
super().__init__()
self.setWindowTitle('Qlabel 例子')
nameLb1 = QLabel('&Name', self) # 设置快捷键
nameEd1 = QLineEdit( self )
nameLb1.setBuddy(nameEd1)
nameLb2 = QLabel('&Password', self)
nameEd2 = QLineEdit( self )
nameLb2.setBuddy(nameEd2)
btnOk = QPushButton('&OK')
btnCancel = QPushButton('&Cancel')
mainLayout = QGridLayout(self)
mainLayout.addWidget(nameLb1,0,0)
mainLayout.addWidget(nameEd1,0,1,1,2)
mainLayout.addWidget(nameLb2,1,0)
mainLayout.addWidget(nameEd2,1,1,1,2)
mainLayout.addWidget(btnOk,2,1)
mainLayout.addWidget(btnCancel,2,2)
def link_hovered():
print("当鼠标滑过label-2标签时,触发事件。")
def link_clicked():
print("当鼠标点击label-4标签时,触发事件。" )
if __name__ == "__main__":
app = QApplication(sys.argv)
labelDemo = QlabelDemo()
labelDemo.show()
sys.exit(app.exec_())
QLabel标签快捷键展示
后记
整理笔记任重而道远,好了,先这样了。