展示文本、富文本、图片、动画。
# 实例化
label = QLabel(self)
# 设置文本
label.setText("666")
# 设置图片
label.setPixmap(QPixmap)
label.resize(200, 200)
label.move(100, 100)# 设置对齐 缩进
label.setAlignment(Qt.AlignmentFlag.AlignRight)
label.setIndent(20) # 右对齐 右缩进
# 设置边距
label.setMargin(20) # 内容和label边框的距离# 设置文本格式
label.setTextFormat(Qt.TextFormat.RichText)# 设置小伙伴
label.setText("用户(&s):") # 快捷键
label.setBuddy(le) # 设置小伙伴
# alt + s 快速跳到le控件# 调整内容尺寸
label.setScaledContents(True)# 设置交互
label.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse | Qt.TextInteractionFlag.TextEditable)
label.setSelection(0, 3) # 从0开始选择3个# 打开外部链接(不可选择交互)
label.setText("百度")
label.setOpenExternalLinks(True) # 打开链接
label.setWordWrap(True) # 单词换行# 设置内容
label.setText("文本、富文本")
label.setNum(23.9)# 设置图片
pic = QPicture() # 图片对象
painter = QPainter(pic) # 画家对象
painter.setBrush(QBrush(QColor(100, 120, 155))) # 设置画刷
painter.drawEllipse(0, 0, 100, 100)
label.setPicture(QPicture)label.setPixmap(QPixmap)# 展示动图
movie = QMovie("./imgs/11.gif")
label.setMovie(movie)
label.resize(600, 500)
moive.start() # !! 开始动画
movie.setSpeed(100) # 设置动画的速度 100%
movie.stop()# 清空
label.clear()
简单动画:

登录页面的背景图
def set_ui(self):# 实例化label对象label = QLabel("测试label", self)# 添加gif动画movie = QMovie("./imgs/11.gif")label.setMovie(movie)label.resize(600, 500)# 开始动画movie.start()movie.setSpeed(100) # 设置速度# 用户名user_name = QLineEdit(self)user_name.setPlaceholderText("用户名")user_name.resize(200, 60)user_name.move(200, 200)pwd = QLineEdit(self)pwd.setPlaceholderText("密码")pwd.resize(200, 60)pwd.move(200, 300)

label 信号
# 超链接激活时
label.linkActivated.connect(func) # 若label.setOpenExternalLinks(True) 则无效果
# 鼠标悬浮超链接时
label.linkHovered.connect(func)
内置方法
# 展示图片
def set_ui(self):label = QLabel(self)pix = QPixmap("./imgs/dog.jpg")label.setPixmap(pix)label.adjustSize()
调色板 设置窗口背景
def set_ui(self):# 实例化调色板对象palette = QPalette()# 设置背景图palette.setBrush(QPalette.Background, QBrush(QPixmap("./imgs/dog.jpg")))# 主窗口设置 调色板self.setPalette(palette)

qss 设置响应式的背景图
def set_ui(self):# self 必须是QMainWindow对象self.setStyleSheet("border-image:url(./imgs/dog.jpg)")

显示LCD样式的数字,展示任何进制、任何大小的数字。

def set_ui(self):lcd = QLCDNumber(5, self) # 最多展示5位数字lcd.display(8888888) # 超出范围则溢出, 显示0lcd.display(-553.0)lcd.display("777")# 获取整型值print(lcd.intValue())# 获取浮点值print(lcd.value())# 设置最大位数lcd.setDigitCount(8)# 显示的进制lcd.setMode(QLCDNumber.Mode.Bin)# 检查数据是否溢出lcd.checkOverflow(100)# 信号lcd.overflow.connect(func)
进度条,简单使用:
# 实例化 进度条 默认0-100
pb = QProgressBar(self)
pb.setMinimum(100)
pb.setMaximum(150)
# 设置当前值,根据 (currentValule - min)/ (max - min) 计算百分比
pb.setValue(123)# 重置
pb.reset() # 重置后 pb.value() 为 最小值-1 区间范围不变

最大值与最小值相等时,进入繁忙状态
设置文本格式:

# 设置文本格式 对齐方式
self.pb.setFormat("当前值{} / 总数 {}".format(self.pb.value() - 100, 50))
self.pb.setAlignment(Qt.AlignmentFlag.AlignCenter)# 设置文本可视
self.pb.setTextVisible(True)
self.pb.text() # 获取文本标签
# 方向
self.pb.setOrientation(Qt.Orientation.Vertical)# 倒立的走向
self.pb.setInvertedAppearance(True)

案例:动态进度条

def set_ui(self):# 实例化 进度条 默认0-100self.pb = QProgressBar(self)self.pb.setMinimum(100)self.pb.setMaximum(150)self.pb.resize(400, 50)# 信号self.pb.valueChanged.connect(lambda val: print("进度更新:", val))# 设置当前值,根据 (currentValule - min)/ (max - min) 计算百分比self.pb.setValue(123)def changeProgress():# 判断是否进度拉满if self.pb.value() == self.pb.maximum():# 停止定时器timer.stop()# 修改进度值self.pb.setValue(self.pb.value() + 1)# 设置定时器timer = QTimer(self.pb)timer.timeout.connect(changeProgress) # 到时间后,触发timeout信号# 1s 执行一次timer.start(1000)
def set_ui(self):import timeimport threadingdef func(pb):while pb.value() < pb.maximum():print("线程正在执行.....", pb, pb.value())pb.setValue(pb.value() + 1)pb.setFormat("当前值{}/ 总值 {}".format(pb.value() - pb.minimum(), pb.maximum() - pb.minimum()))time.sleep(0.5)print("子线程结束...")# 实例化 进度条 默认0-100self.pb = QProgressBar(self)self.pb.setMinimum(100)self.pb.setMaximum(150)self.pb.resize(400, 50)# 设置当前值,根据 (currentValule - min)/ (max - min) 计算百分比self.pb.valueChanged.connect(lambda val: print("进度更新:", val))self.pb.setValue(123)# 开启子线程th = threading.Thread(target=func, args=(self.pb,), name="progress_bar")# th.start()th.setDaemon(True)th.start()
错误信息
def set_ui(self):em = QErrorMessage(self)em.setWindowTitle("错误信息")em.setWindowFlag(Qt.WindowType.WindowContextHelpButtonHint)# 展示错误信息em.showMessage("777")

def set_ui(self):pd = QProgressDialog("提示", "取消", 0, 100, self)# 设置 弹出延时 2s后自动弹出pd.setMinimumDuration(2)pd.setWindowTitle("进度提示")pd.setAutoReset(False)pd.setValue(50)# 手动弹出pd.open(lambda : print("关闭了...."))# 其他的
pd.setLabelText("提示")
pd.setCancleButtonText("取消")# 替换子控件
pd.setBar(QProgressBar) # 替换进度条
pd.setLabel(QLabel)
pd.setCancleButton(QPushButton)
上一篇:初中语文古诗有哪些