1.QLabel背景
2.QLabel超链接
3.QLabel设置图片
4.QLabel设置超链接
5.QLabel设置气泡
6.QLabel点击事件
7.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)
label3 = QLabel(self)
label4 = QLabel(self)
label1.setText("这是一个文本标签。")
label1.setAutoFillBackground(True)
palette = QPalette()
palette.setColor(QPalette.Window,Qt.green)
label1.setPalette(palette)
label1.setAlignment( Qt.AlignCenter)
label3.setAlignment( Qt.AlignCenter)
label3.setToolTip('这是一个图片标签')
label3.setPixmap( QPixmap('./resource/flower.jpg'))
label4.setText("<A href='https://www.baidu.com/'>百度</a>")
label4.setAlignment( Qt.AlignRight)
label4.setToolTip('这是一个超链接标签')
vbox = QVBoxLayout()
vbox.addWidget(label1)
vbox.addStretch()
vbox.addWidget( label3 )
vbox.addStretch()
vbox.addWidget( label4)
self.setLayout(vbox)
self.setWindowTitle("QLabel 例子")
if __name__ == "__main__":
app = QApplication(sys.argv)
win = WindowDemo()
win.show()
sys.exit(app.exec_())
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根据文字适应大小
import sys
from PyQt5.Qt import *
app = QApplication(sys.argv)
window = QWidget()
window.setFixedSize(500, 500) # 固定尺寸
window.move(200, 200)
label = QLabel(window)
label.setText("ABC")
label.move(100, 100)
label.setStyleSheet("background-color: cyan;")
def change_cao():
new_content = label.text() + "ABC"
label.setText(new_content)
label.adjustSize() # 根据内容自适应大小
btn = QPushButton(window)
btn.setText("增加内容")
btn.move(100, 300)
btn.clicked.connect(change_cao)
window.show()
sys.exit(app.exec_())
QLabel设置鼠标形状
import sys
from PyQt5.Qt import *
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2.控件的操作
# 2.1创建控件
window = QWidget()
# 2.2设置控件
window.setWindowTitle("鼠标操作")
window.resize(500, 500)
window.move(400, 250)
label = QLabel(window)
label.resize(300, 300)
label.setStyleSheet("background-color: cyan;")
pixmap = QPixmap("./resource/github.png") # 图片路径
pixmap = pixmap.scaled(100, 100) # 重新设置大小
cursor = QCursor(pixmap, 0, 0) # 0, 0 为热点位置
label.setCursor(cursor)
current_cursor = label.cursor()
print(current_cursor.pos()) # 获取光标位置(相对于整个电脑屏幕)
# 2.3展示控件
window.show()
# 3.应用程序的执行, 进入到消息循环
sys.exit(app.exec_())
QLabel放置图片并缩放
import sys
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLabel-放置图片")
self.resize(500, 500)
self.move(400, 250)
self.setup_ui()
def setup_ui(self):
label = QLabel(self)
label.move(100, 100)
label.resize(80, 80)
label.setPixmap(QPixmap("./resource/github.png"))
label.setScaledContents(True) # 设置内容缩放
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
QLabel添加Gif
import sys
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QLabel-内容操作")
self.resize(500, 500)
self.move(400, 250)
self.setup_ui()
def setup_ui(self):
label = QLabel(self)
label.move(100, 100)
# -------动图----------
movie = QMovie(r'./resource/打墙火柴人.gif')
label.setMovie(movie)
movie.setSpeed(200) # 播放速度(百分比)
movie.start()
# movie.setPaused(True) # 暂停播放
# label.clear() # 清空
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())