GUI学习之十一——QFrame和的QAbstractScrollArea学习总结

上一章我们学习了单行的文本框QLineEdit类,下面我们要为多行的文本框的学习坐下准备,总结一下QFrame类和QAbstractScrollArea类

一.QFrame类

1.描述

QFrame的父类是QWIdget,主要用来控制边框的样式,例如突起、凹下、阴影。

下面的图就是各种效果和不同线号出来的效果
在这里插入图片描述
2.常用API

a.样式设定

复制代码
frame.setFrameShape(QFrame.WinPanel) #样式设定
frame.frameShape() #获取样式(int)
#样式枚举值

QFrame.NoFrame #无样式——返回值0

QFrame.Box #——返回值1

QFrame.Panel #——返回值2

QFrame.WinPanel #闹不大清,和第六个差不多,官方文档不建议使用——返回值3

QFrame.HLine #横线——返回值4

QFrame.VLine #竖线——返回值5

QFrame.StyledPanel #矩形面板,外观取决于当前GUI样式——返回值6

复制代码
设定的样式效果和上面的图一样(样式可能会和系统版本有差异)。

b.阴影效果

frame.setFrameShadow(QFrame.Sunken)#设置框架阴影效果
frame.frameShadow() #获取框架阴影效果
QFrame.Plain #框架和内容无相对3D效果——返回值16
QFrame.Raised #框架突起显示——返回值32
QFrame.Sunken #框架凹陷,返回值48
c.线宽设定

frame.setLineWidth() #设置外线宽度
frame.lineWidth() #获取外线宽度
frame.setMidLineWidth()#设置中线宽度
frame.midLineWidth() #获取中线宽度
frame.frameWidth() #获取总线宽
要注意一点,有些效果是不仅仅有外线和中线的,我们运行一下这个代码

frame.setFrameShape(QFrame.Box)
frame.setFrameShadow(QFrame.Raised)
frame.setLineWidth(20)
frame.setMidLineWidth(12)
print(frame.frameWidth())
发现打印的线宽是52,在Box的突起样式中是有外线中线和内线的,内线的线宽和外线一致。所以总线宽就是52

d.样式设定的时候可以用管道符“|”所以下面两个代码是一样的效果

#方式1
frame.setFrameStyle(QFrame.Box|QFrame.Raised)
#方式2
frame.setFrameShape(QFrame.Box)
frame.setFrameShadow(QFrame.Raised)
但是用FrameStyle()获取样式则是所有效果的"|"运算。

e.边框矩形限制

frame.setFrameRect(QRect(10,10,10,10)) #设定框架的矩形限制
frame.frameRect() #获取框架矩形范围限制
3.信号

QFame的信号都是继承自QWidget的,没有特殊的信号,就不再说明了。

二.QAbstractScrollArea类

1.描述

由于有些时候控件内部内容需要滚动查看,就把QAbstractScrollArea抽象出来了,它是滚动区域的低级抽象,继承的父类是QFrame。

2.功能作用

QAbstractScrollArea类为一个抽象类,无法直接实例化,我们通过它的一个子类QTextEdit来说明它。

te = QTextEdit(window)
a.设置水平垂直滚动条

te.setHorizontalScrollBar()
te.setVerticalScrollBar()
这个先不讲,因为后面还有专门控件来说明

b.滚动条显示策略

复制代码
te.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) #垂直滚动条策略
te.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded) #水平滚动条策略
te.horizontalScrollBarPolicy() #获取水平滚动条策略
te.verticalScrollBarPolicy() #获取垂直滚动条策略
#滚动条策略枚举值
Qt.ScrollBarAsNeeded #需要时显示——0
Qt.ScrollBarAlwaysOff #滚动条始终关闭——1
Qt.ScrollBarAlwaysOn #滚动条始终显示——2
复制代码
c.角落控件

我们可以在控件的右下角设置一个控件,可以把QTextEdit()的右下角添加一个按钮

btn = QPushButton(’&C’,te)
te.setCornerWidget(btn) #设置角落控件
te.cornerWidget() #获取角落控件
出来的效果就是这样的
在这里插入图片描述
QAbstractScrollArea的信号也是继承父类的,没有特别的信号。这里不再赘述。
原文链接:https://www.cnblogs.com/yinsedeyinse/p/10781167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值