第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

时间:2023-03-09 01:50:54
第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

一、概述

容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下:

第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

容器中的Frame为一个矩形的框架对象,对应类QFrame,QFrame类是PyQt中带框架部件的所有类的基类,如菜单、进度条、Label标签等。QFrame类除了派生子类外,也可以直接用于创建没有任何内容的简单占位符框架,用于占用一部分空间。

二、属性和方法

QFrame的方法和基本都是属性访问方法,基本没有单独的方法,因此本部分将属性和方法一起介绍。

在Qt Designer中可以设置的Frame属性包括frameShape、framShadow、lineWidth、midLineWidth四个属性。除了这4个Designer中的属性外,QFrame另外还有frameRect和frameWidth这两个属性。

2.1、frameShape属性

frameShape属性对应类型为QFrame.Shape,该属性表示框架样式中的框架形状,有如下取值:

第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

可以通过方法frameShape() 、setFrameShape(Shape)进行属性访问或设置。

2.2、framShadow属性

frameShadow属性对应类型为QFrame.Shadow,该属性表示框架提供三维效果的阴影类型,有如下取值:

第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

可以通过frameShadow() 、setFrameShadow(Shadow)进行属性的访问。

2.3、frameRect 属性

frameRect 属性保存了Frame框架对象的几何范围矩形,当窗口调整大小时,frameRect 自动跟随调整。可以通过方法frameRect()和setFrameRect(QRect )来访问该属性。

2.4、frameWidth 属性

frameWidth 属性保留所绘制框架的宽度。

请注意,边框宽度取决于边框样式,而不仅仅是lineWidth和midLineWidth。例如,由NoFrame指定的样式的边框宽度始终为0,而样式面板的边框宽度等于线宽。

2.5、lineWidth和midLineWidth属性

ineWidth和midLineWidth属性用于控制框架线条和中线的宽度,与width、frameWidth这两个属性一起表示框架相关的宽度属性。width是整个QFrame的几何图形的宽度,其他三个用于定义一个Frame的边界的宽度。

midLineWidth指定框架中间额外线条的宽度,该线条使用第三种颜色获得特殊的三维效果。请注意,midLineWidth中间线只为凸起或凹陷的框、HLine和VLine框架绘制。

为了便于理解这几个属性,可以参考特定样式的一个图:

第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

从图可以打折看出lineWidth、midLineWidth和frameWidth这三者对应Frame各部分的关系,但这个图只是一种特例,其实还有其他形式的图例,这里用本图仅简单说明这三者大概的位置和关系。

广告

老猿关于PyQt的付费专栏《使用PyQt开发图形界面Python应用》只需要9.9元,该部分与第十五章的内容基本对应,但同样内容在付费专栏上总体来说更详细、案例更多。本节内容对应付费专栏的《第二十九章、containers容器类部件QFrame框架部件详解》。如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍

老猿Python,跟老猿学Python!