GUI编程--PyQt5--QLabel
创始人
2024-02-21 11:03:51

文章目录

  • QLabel 文本展示
  • QLabel 图片展示
  • QLCDNumber
  • QProgressBar
  • QErrorMessage
  • QProgressDialog

QLabel 文本展示

展示文本、富文本、图片、动画。

# 实例化
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)

 

QLabel 图片展示

内置方法

# 展示图片
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)")

在这里插入图片描述

QLCDNumber

显示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)

 

QProgressBar

进度条,简单使用

# 实例化 进度条  默认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)

在这里插入图片描述
 
 
案例:动态进度条
在这里插入图片描述

  1. QProgressBar + QTimer
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)
  1. 自定义子线程, 子线程结束,主进程退出???
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()

QErrorMessage

错误信息

def set_ui(self):em = QErrorMessage(self)em.setWindowTitle("错误信息")em.setWindowFlag(Qt.WindowType.WindowContextHelpButtonHint)# 展示错误信息em.showMessage("777")

 

QProgressDialog

在这里插入图片描述

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)

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...