QFrame类

【Qt笔记】QFrame控件详解 QFrame是Qt框架中一个重要的控件类,主要用于在图形用户界面(GUI)中创建具有边框的框架。它不仅提供了丰富的边框样式、阴影效果和线宽设置,还允许开发者通过子类化来创建自定义的框架样式。 阅读详情

 *QFrame 类是可以具有框架的控件的基类。


Header:#include <QFrame>
CMake:find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake:QT += widgets
Inherits:< QWidget
Inherited By:

QAbstractScrollArea, QLabel, QLCDNumber

QSplitter, QStackedWidget, QToolBox


【详细描述】

 QMenu用来“提升”周围屏幕上方的菜单。QProgressBar具有“凹陷”的外观,QLabel具有“扁平”的外观,像这样有框架的控件是可以改变的。

//以下两段利用QFrame值改变了QLabel和QProgressBar的默认外观。

QLabel label(...);
label.setFrameStyle(QFrame::Panel | QFrame::Raised);
label.setLineWidth(2);

QProgressBar pbar(...);
label.setFrameStyle(QFrame::NoFrame);

QFrame类也可以直接创建没有任何内容的占位框架。

框架的样式由一个frame shape (框架形状)和一个shadow style (阴影样式)组成,用于在视觉上将框架与周围的控件区分开,使用setFrameStyle() 、frameStyle()可以设置和读取框架样式。

框架工具有三个描述边框粗细的属性: lineWidth, midLineWidth 和 frameWidth。

  • 线条宽度是框架边框的宽度,可以对其进行自定义,以修改框架外观。
  • 中线宽度指定框架中间额外线条的宽度,该线条使用第三种颜色来获得3D效果。注意:中线仅用于Box, HLine 和 VLine凸起或凹陷的框架。
  • 框架宽度由框架样式决定,可用frameWidth() 函数获取这个值。

 QWidget::setContentsMargins()函数用于设置框架和框架内容之间的距离。

下表显示了一些样式和线宽的组合:

​


【公共类型】

enum QFrame::Shadow

此枚举用于定义为框架提供3D效果的阴影类型。

常数值描述
QFrame::Plain0x0010框架和内容与周围环境保持水平,使用QPalette::WindowText颜色(没有任何3D效果)。
QFrame::Raised0x0020框架和内容看起来凸起,使用当前颜色组的亮色和暗色绘制凸起线。
QFrame::Sunken0x0030框架和内容看起来凹陷,使用当前颜色组的亮色和暗色绘制凹陷线。

enum QFrame::Shape

此枚举类型定义了可用的框架形状。

常数值描述
QFrame::NoFrame0无框架效果。
QFrame::Box0x0001在其内容周围绘制一个方框。
QFrame::Panel0x0002绘制一个平面,可以使内容凸起或凹陷。
QFrame::StyledPanel0x0006绘制一个矩形面板,其外观取决于当前GUI样式。它可以升高或下沉。
QFrame::HLine0x0004画一条不框住任何东西的水平线(用作分隔符)。
QFrame::VLine0x0005绘制一条不包含任何内容的垂直线(用作分隔符)。
QFrame::WinPanel0x0003绘制一个矩形面板,可以像Windows 2000中的面板一样升起或下沉。指定此形状会将线条宽度设置为2像素,提供WinPanel是为了兼容,为了追求GUI风格独立性,建议使用StyledPanel。

当它不调用时由QStyle、Shape相互作用,并与 QFrame::Shadow, lineWidth() 和midLineWidth()共同形成结果。

请参见 QFrame::Shadow, QFrame::style()和 QStyle::drawPrimitive().


enum QFrame::Shape

此枚举定义了两个常数,用于提取 frameStyle()的两个分量:

常数值描述
QFrame::Shadow_Mask0x00f0frameStyle()中的Shadow 。
QFrame::Shape_Mask0x000fframeStyle() 中的Shape 。

通常不需要使用这两个枚举值,因为 frameShadow() 和 frameShape() 已经提取了  frameStyle()的Shadow 和 Shape 部分。


【属性】

frameRect : QRect

此属性保存框架的矩形。默认情况下,这是整个控件。设置矩形不会 导致控件update。当控件更改大小时,框架矩形会自动调整。

如果将矩形设置为空矩形(例如QRect(0, 0, 0, 0)),则生成的框架矩形等效于widget rectangle。

frameShadow : Shadow

此属性保存框架样式中阴影值 。

frameShape : Shape

此属性保存框架样式中的框架形状值。

frameWidth : const int

此属性保存所绘制的框架的宽度。

请注意,框架宽度取决于frame style,而不仅仅是线宽和中线宽度。例如,指定的样式始终具有 0 的框架宽度,而样式Panel的框架宽度等于线宽。

lineWidth : int

此属性保存线宽。

请注意,用作分隔符 (HLine and VLine) 的框架总线宽由 frameWidth指定。

midLineWidth : int

此属性保留中线的宽度,默认值为 0。

【公有函数】

QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

构造框架样式为NoFrame和 1 像素宽度的框架控件。parent 和 f 参数传递给构造函数。

virtual~QFrame()析构。
QRectframeRect() const返回框架的矩形。
QFrame::ShadowframeShadow() const返回框架样式中阴影值 。
QFrame::ShapeframeShape() const返回框架样式中的框架形状值。
intframeStyle() const返回框架样式。
intframeWidth() const返回所绘制框架的宽度。
intlineWidth() const返回线宽。
intmidLineWidth() const返回中线宽度。
voidsetFrameRect(const QRect &)设置框架的矩形。
voidsetFrameShadow(QFrame::Shadow)设置框架样式中阴影值 。
voidsetFrameShape(QFrame::Shape)设置框架样式中的框架形状值。
voidsetFrameStyle(int style)设置框架样式。
voidsetLineWidth(int)设置线宽。
voidsetMidLineWidth(int)设置中线宽度。

【重实现的公有函数】

virtual QSizesizeHint() const override重实现QWidget::sizeHint (推荐尺寸函数)。

【受保护的函数】

virtual voidinitStyleOption(QStyleOptionFrame *option) const

用option的值初始化QFrame。当子类需要QStyleOptionFrame(绘制框架参数)但不想填写所有信息时很有用。


【重新实现的受保护函数】

virtual voidchangeEvent(QEvent *ev) override
virtual boolevent(QEvent *e) override
virtual voidpaintEvent(QPaintEvent *) override

<<< 返回上一级【QWidget类】

<<< 返回根页面

QT6学习第八天 QFrame 类 QAbstractSpinBox 类时一个抽象基类,提供了一个数值设定框和一个行编辑器来显示设定值。它有三个子类,QDateTimeEdit、QSpinBox、QDoubleSpinBox,分别用来完成日期时间、整数和浮点数的设定。创建一个Qt Widget 项目,命名myspinbox,基类为 QWidget,类名MyWidgetQDateTimeEdit类提供了一个可以编辑日期和时间的部件。 阅读详情

相关推荐

第二十九章、containers容器类部件QFrame框架部件详解

一、概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下: 容器中的Frame为一个矩形的框架对象,对应类QFrame,QFrame类是PyQt中带框架部件的所有类的基类,如菜单、进度条、Label标签等。QFrame类除了派生子类外,也可以直接用于创建没有任何内容的简单占位符框架,用于占用一部分空间。 二、属性和方法 QFrame的方法和基本都是...

老猿Python 2984

QFrame类分析

1 QFrame描述 QFrame是基本控件的基类,QWidget是QFrame基类,实质上就是在widget的基础上多做了一些工作,如拓展了一些样式阴影等显示美化功能,然后封装为QFrame类。 2 QFrame继承 它是继承QWidget ,所以它是可直接直接展示的。 继承关系如下: QPushButton,QLabel… (常使用控件)——> QFrame ——> QWidget。 而Qwidget又继承于:QtCore、QObject类以及QtGui、QPaintDevice类。 Q

weixin_42887343的博客 9388

Qt基础控件篇:QFrame框架

在主程序中创建了一个QWidget并在其中添加了一个带有文本的QLabel和一个我们自定义的带有阴影效果的QFrame。掌握了QFrame的使用方法,可以为我们的Qt界面开发提供更多的样式和风格选择,大大丰富了我们的页面布局设计。QFrame类是具有框架的小部件的基类,例如QLabel、QTextEdit等,这些直接或间接继承QFrame类,都拥有框架。QFrame是一个在Qt的界面开发中非常重要的控件类,它作为许多基础控件的基类,提供了丰富的成员方法给子类,可以很方便地实现子类的框架样式的设计。

. 3394

Qt—常用窗口部件

Qt—常用窗口部件 QFrame类族 QFrame基本属性概述 QFrame类是带有边框的部件的基类。它的子类有我们最为常用的标签部件QLabel,另外还有QLCDNumber、QSplitter、 QStackedWidget、QToo1Box和QAbstractScrollArea类。 QAbstractScrollArea类是所有带有滚动区域的部件类的抽象基类。 QAbstractScrollArea的子类中有最常用的QTextEdit类和各种项目视图类 QT中凡是带有Abstract字样的

Half-up的博客 3237

QT的QFrame类的使用

详细说明 QFrame类是可以具有框架的窗口小部件的基类。 QMenu使用它来“提升”周围屏幕上方的菜单。 QProgressBar具有“下沉”外观。 QLabel外观平整。这样的小部件的框架可以更改。 QLabel label(...); label.setFrameStyle(QFrame::Panel | QFrame::Raised); label.setLineWidth(2); QProgressBar pbar(...); label.setFrameStyle(QFra

希望我的博客,能帮上你解决学习中工作中所遇到的问题 5850

使用QFrame类实现界面美化

我们只需要在ui文件中添加一个QFrame控件,然后在代码中设置它的属性即可。接着,我们就可以使用QFrame的一些函数来设置框架的属性了。在Qt中使用QFrame类非常简单,我们只需要在ui文件中拖动一个QFrame控件并在代码中设置它的属性即可。然后,在ui文件中拖动一个QFrame控件,并给它一个objectName,例如我们命名为"myFrame"。QFrame类是Qt框架中用于创建和显示矩形框架的基本组件,它可以用于美化界面、分割界面等多种场景。使用QFrame类实现界面美化。

pytorchCode的博客 671

QFrame类学习笔记  

QFrame类学习笔记 参考:https://wenku.baidu.com/view/759c1af565ce050877321322.html https://doc.qt.io/qt-5/qframe.html 1、QFrame的作用 QFrame类继承于QWidget类,被QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, an...

yq327115059的博客 4108

【Qt开发】容器框架QFrame类详解及实战应用

QFrame 是一个功能强大的 Qt 基础类,它为我们提供了一个带有边框和阴影效果的容器,可以极大地提升我们的界面设计灵活性和美观度。通过对 QFrame 类的深入剖析和实际代码示例,掌握了其常用方法和高级技巧,可以更好地利用它来构建复杂的用户界面。

科技改变人类,技术成就未来 1788

QFrame类的使用

今天在写一个程序的时候需要使用QFrame类,在这里总结一下常用的用法。 为什么要总结这个呢?虽然可以随用随查文档,但是当你真正写代码的时候,是很难沉浸下来好好研究文档的,所以我趁现在有时间好好学一下这个框架 这也是一个窗口框架,他的父类是QWidget。 setFrameShape(QFrame::Shape) 这个函数的功能是设置窗体的形状,其中的QFrame::Shape有一下几种 一共七种形状可以设置,在这七种形状之外,还有三种阴影 setFrameShadow(QFrame::Shadow) 这个

qq_27168967的博客 1994

一文入门Qwen-Agent【附实战代码】

Qwen-Agent 是一个开源框架,用于开发基于 Qwen 模型的 AI 智能体应用,一文带你入门使用

m0_55303420的博客 1874

ESP32-S3 SPI驱动SD卡与FATFS文件系统实践

SPI(串行外设接口)是嵌入式系统中常用的同步串行通信协议,通过主从架构实现全双工通信。其工作原理基于时钟同步和数据线传输,具有接线简单、占用引脚少的优势。在存储扩展场景中,SPI模式可驱动SD卡实现大容量数据存储,配合FATFS文件系统可提供标准化的文件管理能力。ESP32-S3作为乐鑫推出的高性能Wi-Fi/蓝牙双模芯片,其SPI外设支持高达80MHz时钟频率,结合ESP-IDF提供的sdspi_host驱动,开发者能快速实现SD卡存储方案。该技术广泛应用于物联网设备日志存储、传感器数据采集等场景,本实

weixin_29168393的博客 357

Qt QFrame类

QFrame类是带有边框的部件的基类。它的子类包括最常用的标签部件QLabel,另外还有QLCDNumber,QSplitter,QStackedWidget,QToolBox和QAbstractScrollArea类。QAbstractScrollArea类是说有带有滚动区域的部件类的抽象基类,这里需要说明,Qt中凡是带有Abstract字样的类都是抽象基类。抽象基类是不能直接使用的,但是可以继承该类实现自己的类,或者使用它提供的子类。QAbstractScrollAread的子类中有最常用的文本编辑器类

灰猫丫的博客 1586

ComfyUI+minimaxh3本地部署:漫剧分镜批量生成工作流全实操

视频生成模型正从云端API向本地化部署迁移,背后的技术逻辑是将扩散模型的文本编码、潜空间采样、VAE解码等阶段拆分为可编排的独立环节。ComfyUI作为节点化管线工具,恰好能以可视化连线方式管理这些阶段,让生成过程可控、可复用、可批量执行。minimaxh3模型支持本地推理,配合LoRA微调与参数优化,能够在保证角色一致性的前提下,从分镜脚本批量产出连续剧情片段,规避云端排队、成本高、素材不可控等工程问题。这套工作流广泛应用于漫剧、短剧和动态条漫的工业化生产,尤其适合需要高频迭代分镜草稿的内容团队。文本以零

weixin_29057065的博客 365

QT QFrame类

QFrame没有特定的功能或行为,而是提供了一种通用的方式来进行定制化的图形布局。而midLineWidth是在边框中额外插入的一条线的宽度,这条线的作用是为了形成3D效果,并且只在Box,Hline和 VLine表现为凸起或者凹陷时有用。带边框部件最主要的特点就是可以有一个明显的边界框架。抽象基类是不能直接使用的,但是可以继承该类实现自己的类,或者使用它提供的子类。frameShape: 设置框架的形状和样式,如边框、阴影和凹陷效果等。QFrame类是带有边框的部件的基类。它的子类包括最常用的标签部件。

2301_79503228的博客 607

距离多普勒谱(RD谱)绘制方法及理解

RD谱是信号处理领域常用的图形。原始信号往往是一维时域序列,如何将其二维化,并进行变换生成RD谱呢?由于刚刚接触,查阅了网络上、老师手里的资料,发现RD谱的绘制方法并不统一,有些存在一定问题。在此,将心得体会记录下来。

mddh_123的博客 3万+

Qt | linux+openCV+Qt6.5.3环境搭建成功版(带例子)

opencv安装 Qt 实战举例

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1885

《QT 108好类》之5 QFrame类

本文介绍了Qt框架中的QFrame类,这是一个继承自QWidget的基础控件类,主要用于为其他控件提供框架样式和容器功能。QFrame支持多种边框样式(如无边框、矩形、面板等)、阴影效果(平面、凸起、凹陷)和线宽设置,还可作为分隔线使用。文章详细说明了QFrame的继承关系、主要特性、常用成员函数(如设置框架形状、阴影效果等)和实际应用示例,包括作为容器、分隔线以及自定义绘图等场景,并附有结果展示图。QFrame是构建Qt界面时常用的基础控件之一。

qq_43550409的博客 430

Xilinx平台SRIO介绍(二)SRIO IP核基础知识

使用SRIO IP核必须掌握的基础知识! 理解了这篇,剩下的只是代码罢了。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 4万+

QT学习:QFrame类族

QFrame类是带有边框的部件的基类,它的子类有最为常用的标签部件QLabel,另外还有QLCDNumber,QSplitter,QStackedWidget,QToolBox和QAbstractScrollArea类,QAbstractScrollArea类所有带有滚动区域的部件类的抽象基类,这里需要说明的是在QT中带有Abstract字样的类都是抽象基类。 带边框部件最主要的特点就是可以有一个明显的边界框架。QFrame类的主要功能也就是用来实现不同的边框效果,lineWidth是边框边界的线得宽度,

w0131的博客 1522

2026年迈瑞医疗嵌入式岗位面试题集(含参考答案)

文章摘要 本文总结了嵌入式开发面试中的30道题目,涵盖7大模块:嵌入式硬件与底层驱动、C/C++语言基础、操作系统与多线程编程、网络通信协议、数据结构与算法、开发工具与调试能力、综合素养与职业认知。重点解析了I²C通信协议的工作原理、速率选择及异常排查方法;USB的报文协议与四种传输类型及其适用场景;硬中断与软中断的区别及设计注意事项;字节序的概念与处理方法;以及C++中static和const关键字的核心作用。内容深入实用,适用于嵌入式开发者的技术提升与面试准备。

Open 53

openclaw通俗入门系列6——记忆系统

记忆 = 智能体的笔记本,分长期(MEMORY.md)和每日(memory/日期.md)。只有写到文件里的才能记住!支持语义搜索(理解意思)+ 关键词搜索,还能自动在压缩前保存重要内容。

m0_60605453的博客 403

17 QFrame类族

QFrame类是具有框架的小部件的基类。 QMenu使用它将菜单“提升”到周围屏幕的上方。QProgressBar有一个“凹陷”的外观。QLabel有一个扁平的外观。可以更改这些小部件的框架。 QLabel label(...); label.setFrameStyle(QFrame::Panel | QFrame::Raised); label.setLineWidth(2); QProg...

QtHalcon 420

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

PySide2使用QFrame类

QFrame类 QFrame 继承自 QWidget,它的主要作用时用来控制一些边框的样式,例如凸起,凹下,阴影,线宽等。 QFrame.shape 框架形状 QFrame.NoFrame 不显示形状 QFrame.Box QFrame 围绕其内容绘制一个框 QFrame.Panel QFrame绘制一个面板,使其内容显得突起或凹陷 QFrame. HLine 水平分割线 QFrame.VLine 垂直分割线 QFrame.StyledPanel 绘制一个矩形面板, 其外

weixin_39868379的博客 1523

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: QTreeWidgetItem类
下一篇: QWidgetItem类
floatbit
博客等级 码龄24年 460粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值