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

摘要:
本节内容对应于付款栏中的“第29章,集装箱组件QFrame框架组件的详细说明”。

一、概述

容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下:
在这里插入图片描述

容器中的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,该属性表示框架样式中的框架形状,有如下取值:
在这里插入图片描述
可以通过方法frameShape() 、setFrameShape(Shape)进行属性访问或设置。

2.2、framShadow属性

frameShadow属性对应类型为QFrame.Shadow,该属性表示框架提供三维效果的阴影类型,有如下取值:
在这里插入图片描述
可以通过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框架绘制。

为了便于理解这几个属性,可以参考特定样式的一个图:
在这里插入图片描述
从图可以打折看出lineWidth、midLineWidth和frameWidth这三者对应Frame各部分的关系,但这个图只是一种特例,其实还有其他形式的图例,这里用本图仅简单说明这三者大概的位置和关系。

广告

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

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

老猿Python,跟老猿学Python!

免责声明:文章转载自《第15.36节 PyQt(Python+Qt)入门学习:containers容器类部件QFrame框架部件介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android控件系列之RadioButton&RadioGroupReact组件中对子组件children进行加强下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python中的函数参数有冒号 声明后有-> 箭头

在python3.7 环境下 函数声明时能在参数后加冒号,如图: def f(ham: str, eggs: str = 'eggs') -> str : print("Annotations:", f.__annotations__) print("Arguments:", ham, eggs) return ham...

python轻量级orm框架 peewee常用功能速查

peewee常用功能速查 peewee 简介 Peewee是一种简单而小的ORM。它有很少的(但富有表现力的)概念,使它易于学习和直观的使用。 常见orm数据库框架 Django ORM peewee SQLAlchemy Django ORM 优点:易用,学习曲线短和Django紧密集合,用Django时使用约定俗成的方法去操作数据库缺点:Quer...

【转】Python 数据库连接池

    python编程中可以使用pymysql进行数据库连接及增删改查操作,但每次连接mysql请求时,都是独立的去请求访问,比较浪费资源,而且访问数量达到一定数量时,对mysql的性能会产生较大的影响。因此实际使用中,通常会使用数据库的连接池技术,来访问数据库达到资源复用。 python的数据库连接池包:DBUtils DBUtils提供两种外部接...

ansible使用jinja2模板

jinja2基本语法 控制结构 {% %}             jinja2中的for循环用于迭代Python的数据类型,包括列表,元组和字典          2.变量取值 {{ }}             jinja2模板中使用 {{ }} 语法表示一个变量,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/...

python|sqlalchemy|联表查询

2020-04-20|待完善,给出可以直接运行的py文件 建立表的类 class Account(db.Model): __tablename__ = 'account' id = db.Column(db.INT, primary_key=True, nullable=False, autoincrement=True) nick...

Python 0001:生成激活码

Talk is cheap,Show me the code! “‘ 第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? ’” 有参考和借鉴,写这篇随笔是为了记忆和理解。 我自己的想法是用random模块做,其他也不熟悉。UU...