Python桌面开发pyqt5—QFrame及其子类

QLabel

格式设置

label = QLabel('唉你好~', self)
label.setStyleSheet('background-color:cyan')
label.resize(200, 120)

# 设置尺寸
label.setFixedSize(100, 60)

# 设置对齐方式
label.setAlignment(Qt.AlignRight | Qt.AlignVCenter)  # 垂直方向靠右,竖直方向居中
# 设置离对齐方式的距离
label.setIndent(20)  # 只对水平方向有效,因为右对齐,所以靠右侧20像素
# 设置内部间距
label.setMargin(20)  # 包括水平和竖直方向,靠左右边框都是20像素
# 设置文本格式
"""Qt.PlainText: 设置为普通文本,不解析(默认)
Qt.RichText: 设置为富文本,可解析html
Qt.AutoText: 自动文本,自动识别是否为富文本"""
label.setTextFormat(Qt.AutoText)

在这里插入图片描述

小伙伴

label = QLabel('这时QLabel(&r)~~', self)
le = QLineEdit(self)
le.move(100, 100)
le_1 = QLineEdit(self)
le_1.move(100, 150)
# 绑定小伙伴
label.setBuddy(le_1)  # 按下快捷键(Alt+r)自动跳转到伙伴控件le_1

在这里插入图片描述

图片自适应大小

label = QLabel(self)
label.resize(500, 300)
# 插入图片
label.setPixmap(QPixmap('../resources/pink_flower.png'))
# 设置自适应
label.setScaledContents(True)  # 默认为False,不适应
# 学习.adjustSize()

在这里插入图片描述

设置交互权限

label = QLabel('哈哈哈哈', self)
# 设置操作权限
"""Qt.NoTextInterface: 默认值,不能交互
TextSelectableByMouse: 可被鼠标选中
TextSelectableByKeyboard: 可被键盘选中
LinksAccessibleByMouse: 鼠标可打开超链接
LinksAccessibleByKeyboard: 键盘可打开超链接
TextEditable: 文本内容可编辑
TextEditorInteraction: 文本编辑的默认值
TextBrowserInteraction: QTextBrowser的默认值"""
label.setTextInteractionFlags(Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard | Qt.TextEditable)

在这里插入图片描述

文本操作

label = QLabel(self)

# 设置文本
label.setText('恕瑞玛就和太阳一样兴盛不息')
# 设置数字
label.setNum(101.22)

# 设置图片图像
'''pic = QPicture()
painter = QPainter(pic)
painter.setBrush(QBrush(QColor(200,0,0)))
painter.drawEllipse(0,0,100,100)
label.setPicture(pic)'''

# 设置GIF动画(注意不是视频)
'''
movie = QMovie('./resources/cat.gif')
movie.start()
movie.setSpeed(1000)         # 100为原速度。所以这里就是10倍速
label.setMovie(movie)'''

# 选中文本
label.setSelection(1, 3)  	# 从索引1开始,选择3个字符
#设置换行
label.setWordWrap(True)		# 将setText()的内容原样展示(包括换行...),默认False

# 清空所有内容
label.clear()

链接

label = QLabel('<a href="http://www.ncut.edu.cn">https://www.bjtu.edu.cn</a>', self)
# 设置可打开超链接
label.setOpenExternalLinks(True)	# 默认False

信号

label = QLabel('<a href="http:www.ncut.edu.cn">超链接</a>', self)
# 鼠标移动到超链接的信号
label.linkHovered.connect(lambda url: print(url))
# 点击超链接的信号(在label.setOpenExternalLinks(True)下不发射,而在False下发射)
label.linkActivated.connect(lambda url: print(url))

QProgressBar

简单方法

pb = QProgressBar(self)
pb.move(200, 100)
btn = QPushButton('按钮', self)
btn.move(200, 200)
btn_1 = QPushButton('繁忙', self)
btn_1.move(300, 200)

# 获取最值
print(pb.minimum())  # 默认min=0
print(pb.maximum())  # 默认max=100

# 设置最值
pb.setMinimum(0)
pb.setMaximum(120)
pb.setRange(0, 120)

# 设置值
pb.setValue(100)

# 重置操作
def func():
    pb.reset()  # 重置
    print(pb.minimum())  # 重置后的最小值不变
    print(pb.maximum())  # 重置后的最大值不变
    print(pb.value())  # 重置后的值变为 min-1

btn.clicked.connect(func)

# 忙碌状态
def func_1():
    pb.setRange(0, 0)  # 只要将最大最小值都设为0即可(一定是0)

    btn_1.clicked.connect(func_1)

在这里插入图片描述

文本格式设置

pb = QProgressBar(self)
pb.resize(250, 50)
pb.setValue(72.3)
btn = QPushButton('按钮', self)
btn.move(200, 200)

# 格式化显示数值
# pb.setFormat('百分比:%p,当前值:%v,总值:%m')

# 设置文本的对齐方式
pb.setAlignment(Qt.AlignHCenter)  # 水平居中

# 重置格式
btn.clicked.connect(lambda: pb.resetFormat())

在这里插入图片描述

文本标签操作和方向和反转功能

btn = QPushButton('按钮', self)
btn.move(200, 200)
pb = QProgressBar(self)
pb.setValue(98)
# pb.setFormat('百分比:%p,当前值:%v,总值:%m')

# 设置文本是否可见
pb.setTextVisible(True)  # 默认为True(可见)
# 判断文本是否可见
print(pb.isTextVisible())  # 默认为True
# 获取文本内容
print(pb.text())  # 即使被隐藏了也能获取

# 进度条变为垂直
def func():
    pb.setOrientation(Qt.Vertical)  # 设置方向位竖直
    pb.resize(40, 300)  # 进度是从下往上走的
    print(pb.isTextVisible())

btn.clicked.connect(func)

# 倒立外观
pb.setInvertedAppearance(True)  # 默认为False,就是水平从左往右,垂直从下往上

在这里插入图片描述

信号

pb = QProgressBar(self)
pb.setValue(1)

timer = QTimer(pb)

def func():
    pb.setValue(pb.value() + 1)
    if pb.value() == pb.maximum():
        timer.stop()

timer.timeout.connect(func)
timer.start(1000)  # 每隔一秒时间增加1

# 进度改变的信号
pb.valueChanged.connect(lambda value: print('当前进度为:', value))

QLCDNumber

展示模式

btn = QPushButton('按钮', self)
btn.move(10, 200)
lcd = QLCDNumber(15, self)  # 第一个参数限定展示的最大位数。也可用lcd.setDigitCount()来限制位数
lcd.resize(200, 120)
lcd.move(100, 100)

# 展示字符串
lcd.display('8572612')  # 若位数大于6,只能展示后面6位
# 展示几个字母
lcd.display('abcdefghloprsuy')
# 展示数字
lcd.display(23131.999)  # 和str的区别是,如果数字超出了位数限制,会展示0而不是后边几位

# 如果是浮点类型,超过了位数限制会不显示小数
# 获取值
def func():
    print(lcd.value())  # 返回float真实值,即使小数为展示出来也会获取真实值
    print(lcd.intValue())  # 获取int真实值,如果含有小数,会四舍五入取值
btn.clicked.connect(func)

在这里插入图片描述

显示模式

lcd = QLCDNumber(self)
lcd.display(11)
# 设置显示进制
"""Bin:二进制
Oct: 八进制
Dec: 十进制(默认)
Hex: 十六进制"""
lcd.setMode(QLCDNumber.Hex)

#设置进制的快捷方式
#lcd.setBinMode()
#lcd.setOctMode()
#lcd.setDecMode()
#lcd.setHexMode()

在这里插入图片描述

溢出判定

lcd = QLCDNumber(2,self)
# 判断是否溢出
print(lcd.checkOverflow(99))
print(lcd.checkOverflow(100))	

# 溢出信号
lcd.overflow.connect(lambda: print('值溢出了'))
lcd.display(99.99999)

数字样式

lcd = QLCDNumber(self)
lcd_1 = QLCDNumber(self)
lcd_2 = QLCDNumber(self)

lcd.resize(200, 100)
lcd_1.resize(200, 100)
lcd_2.resize(200, 100)

lcd.move(100, 0)
lcd_1.move(100, 100)
lcd_2.move(100, 200)

lcd.setSegmentStyle(QLCDNumber.Outline)
lcd_1.setSegmentStyle(QLCDNumber.Flat)
lcd_2.setSegmentStyle(QLCDNumber.Filled)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值