基本控件的基类QFrame功能介绍及QFrame和QWidget的区别
QFrame是QWidget的子类,与QWidget不同的是QFrame主要用于控制控件的边框样式,如凸起、凹下、阴影、线宽等等,QFrame继承自QWidget可以直接使用,也可以展示。
QFrame是QWidget的子类,与QWidget不同的是QFrame主要用于控制控件的边框样式,如凸起、凹下、阴影、线宽等等,QFrame继承自QWidget可以直接使用,也可以展示。
一、QFrame功能介绍
下面是QFrame构造方法,通过方法可以看出来QFrame可以有上级控件,并且可以通过flags来选择样式,后面详细讲解。
class QFrame(QWidget): """ QFrame(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) """
1.创建一个QFrame对象
def func(self): qf = QFrame(self) qf.resize(200, 120) qf.move(150, 150) qf.setStyleSheet('background-color:green')
通过背景样式可以直接看到这个控件了。
2. QFrame边框样式介绍
这里我从网上找到一张图片,完全能说明QFrame的边框样式设计效果,这里解释一下,如果还有人看不明白,请只接看本站视频教程。
从上图中可以看到我用不同颜色划分的区域,首先标记1中的0表示外线宽度lineWidth,标记2中的0123表示中线宽度middleWidth,这有点类似CSS中的盒子模型。其次标记5以及下面绿色框中表示的是框架形状或属性,标记6及红色框内表示的是阴影效果,类似于值。
整体样式设计,就是先通过lineWidth和middleWidth的大小选择后再通过属性和值的选择来确定QFrame的样式的。
二、QFrame和QWidget的区别
QFrame和QWidget的区别这里我结合一些官方解答和我自己的理解。
QWidget类是所有用户界面对象的基类,被称为基础窗口部件,QWidget是用户界面的基本单元,直接从窗口系统接收鼠标、键盘等硬件事件,然后在屏幕上绘制自己,它可以作为其他部件的容器。QWidget继承自QObject类和QPaintDevice类,其中QObject类是所有支持Qt对象模型(Qt Object Model)的Qt对象的的基类,QPaintDevice类是所有可以绘制的对象的基类。
QFrame类是带有边框的部件的基类。它的子类有我们最为常用的标签部件QLabel,另外还有QLCDNumber、QSplitter、QStackedWidget、QToolBox和QAbstractScrollArea类。
带边框部件最主要的特点就是可以有一个明显的边界框架。QFrame类的主要功能也就是用来实现不同的边框效果,这主要是由边框形状(Shape)和边框阴影(Shadow)组合来形成的。