Qt - C++ - QWidget和QFrame的详细区别
Qt QFrame
QT批量隐藏控件并取消占位 https://blog.csdn.net/qiujin000/article/details/128375175
qt 批量隐藏控件 隐藏按钮 https://blog.csdn.net/Fourier_1024/article/details/113742870
Qt应用开发(基础篇)——框架类 QFrame
---------------------------------------------------------
QT批量隐藏控件的方法:
1. 优选的方法:采用隐藏 QFrame /或 QGroupBox 的方法。 https://blog.csdn.net/qiujin000/article/details/128375175
2. 繁琐的方法: https://blog.csdn.net/Fourier_1024/article/details/113742870
.
注:在使用 QGroupBox时,需要将它嵌入到 QWidget中。否则,一个 QGroupBox就会占满整个 gui界面,而不能在一个界面里同时存在多个 QGroupBox ? 是这样吗?
3. 特别注意:
3.1. QFrame /或 QGroupBox,只是用来布局的。
ui->groupBox->setHidden(true); // OK
3.2. 当需要访问嵌在 QFrame /或 QGroupBox内部的部件时,则需要无视 QFrame /或 QGroupBox 对象的存在。
ui->pushButton->... //OK
ui->
groupBox->pushButton->... //NG。需要取消:->groupBox
参考:
Qt—常用窗口部件
https://blog.csdn.net/qq_35629971/article/details/121733972
https://blog.csdn.net/ken2232/article/details/136095300
================================
Qt应用开发(基础篇)——框架类 QFrame
一、前言
QFrame继承于QWidget,被QLCDNumber、QToolBox、QLabel、QListView等部件继承,是一个拥有矩形框架的基类。
QFrame可以直接创建成一个没有内容的的矩形框架,框架的样式由边框厚度(lineWidth)、框架形状(QFrame::Shape)和阴影样式(QFrame::Shadow)决定,下图是官网给出的组合样式图。
二、QFrame类
1、frameRect
该属性表示框架的尺寸,设置框架的尺寸不会对里面的内容做更新,内部小部件改变大小的时候,会自动调整框架的尺寸。
QRect frameRect() const //获取尺寸
void setFrameRect(const QRect &) //设置尺寸
2、frameShadow
该属性表示框架的阴影,效果参阅前文框架图片。
QFrame::Shadow frameShadow() const //获取阴影样式
void setFrameShadow(QFrame::Shadow) //设置阴影样式
名称 值 描述 QFrame::Plain 0x0010 框架和内容与周围环境齐平,没有任何3D效果 QFrame::Raised 0x0020 框架和内容显得凸起;使用当前色组的明暗颜色绘制3D凸起线 QFrame::Sunken 0x0030 框架和内容显得下沉;使用当前色组的明暗颜色绘制3D下沉线
3、frameShape
该属性标识框架的形状,效果参阅前文框架图片。
QFrame::Shape frameShape() const
void setFrameShape(QFrame::Shape)
名称 值 描述 QFrame::NoFrame 0 不绘制任何东西 QFrame::Box 0x0001 绘制一个箱体环绕边框 QFrame::Panel 0x0002 绘制一个面板,使内容看起来凸起或凹陷 QFrame::StyledPanel 0x0006 绘制一个矩形面板,其外观取决于当前的GUI样式。它可以凸起,也可以凹陷。 QFrame::HLine 0x0004 绘制一条水平线用作分隔符,该水平线不包含任何内容 QFrame::VLine 0x0005 绘制一条垂直线用作分隔符,该垂直线不包含任何内容 QFrame::WinPanel 0x0003 绘制一个矩形面板,可以像Windows 2000中的面板一样凸起或凹陷。指定此形状将线宽设置为2像素。WinPanel提供了兼容性。对于GUI样式独立,建议使用StyledPanel。
4、frameWidth
该属性表示框架的边框宽度,该属性取决于边框的样式,比如NoFrame指定的样式的宽度总是为0,而Panel样式的宽度等于线宽。
int frameWidth() const //获取宽度
5、lineWidth
该属性表示线宽,效果参阅前文框架图片。
int lineWidth() const //获取线宽
void setLineWidth(int) //设置线宽
6、midLineWidth
该属性表示内线宽,效果参阅前文框架图片。
int midLineWidth() const //获取内线宽
void setMidLineWidth(int) //设置内线宽
7、frameShadow
组合获取和设置frameShadow和frameShape样式。
int frameStyle() const //获取样式
void setFrameStyle(int style) //设置样式
实例:
QFrame penColorFrame = new QFrame;
penColorFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken)
文章来源:https://blog.csdn.net/u014491932/article/details/132188655
摘录:Qt QFrame的具体使用
https://www.jb51.net/article/252832.htm
1.概述
void setFrameShape(Shape)
QFrame继承QWidget,QFrame类是具有框架的小部件的基类,例如QLabel、QTextEdit,这些直接或间接继承QFrame类,都拥有框架。
主要有下面几个作用:
- 改变框架形状
- 改变框架阴影
- 改变框架的线宽
- 改变框架的样式
- 改变框架的矩形
摘录:QFrame 与 QWidget的区别
Posted on 2023-05-23 11:16 https://www.cnblogs.com/ghj1976/p/qframe-yu-qwidget-de-qu-bie.html
Qt中的QFrame和QWidget是两个不同的控件类,
它们的继承关系如下:
QWidget <- QFrame <- QPushButton,QLabel…
QWidget(窗口部件)
QWidget是Qt中所有用户界面元素的基类,用于创建可视化的窗口或控件。
它可以包含其他子部件,并提供了一些基本的绘制和事件处理功能。
QWidget本身并不提供任何特定的外观或布局,因此通常用作其他控件的容器。
QFrame(帧)
QFrame是QWidget的子类,它提供了一些外观和边框装饰的功能。
它可以用于创建具有边框、阴影和其他外观效果的控件。
QFrame还提供了一些额外的绘制功能,例如绘制线条、背景和图像。
总结
QWidget用于创建一个基本的窗口部件,而QFrame用于创建一个带有边框的窗口部件。您可以根据需要选择使用QWidget或QFrame,具体取决于您希望控件具有的外观和功能。
Qt - C++ - QWidget和QFrame的详细区别
QWidget和QFrame是Qt框架中的两个重要类,用于创建用户界面。
它们之间的详细区别如下:
- 功能和用途:
QWidget是Qt中的一个基本窗口小部件,它可以用于创建自定义的图形用户界面(GUI)。它是一个顶层的容器小部件,可以包含其他小部件、布局和内容。它通常用于创建自定义的窗口、对话框和面板等。QFrame是QWidget的一个子类,它提供了一个具有边框和背景的窗口小部件,通常用于创建复杂的自定义小部件。它提供了一些额外的功能和效果,例如边框、背景、阴影等,可以增强视觉效果。 - 外观和样式:
QWidget是一个通用的容器小部件,它可以具有任意的外观和样式。通过设置样式或使用皮肤引擎,QWidget可以具有各种外观和效果,例如改变外观颜色、字体、图标等。QFrame通常被用作装饰或显示用的小部件,它可以提供边框、背景和阴影等效果,以增强视觉效果。 - 子小部件和布局:
QWidget可以包含其他小部件和布局,以构建复杂的用户界面。它提供了管理子小部件的方法,例如addwidget()、removewidget()、layout()等。通过使用布局管理器,可以将子小部件按照网格布局、堆叠布局、水平布局等进行排列。QFrame也可以包含其他小部件,但它通常被用作装饰或显示用的小部件,而不是作为主要的容器小部件。 - 事件处理:
QWidget是事件驱动的,它可以接收和处理各种用户输入事件(例如鼠标点击、键盘输入)和系统事件(例如窗口大小变化、关闭事件)。通过重写特定的事件处理方法,可以定制QWidget的行为和响应。QFrame也继承了事件处理的能力,但它通常不直接处理复杂的用户交互事件,而是通过传递事件给其父容器或子小部件来处理。 - 继承关系:
QWidget是QFrame的父类,也就是说QFrame是QWidget的一个子类。这意味着QFrame继承了QWidget的所有属性和方法,并且可以使用QWidget中定义的所有功能。同时,QFrame也有自己独特的功能和效果,例如边框、背景、阴影等。
总的来说,QWidget是一个通用的窗口小部件,用于创建自定义的图形用户界面。它是一个顶层的容器小部件,可以包含其他小部件、布局和内容,并具有广泛的功能和样式。而QFrame是QWidget的一个子类,它提供了一些额外的功能和效果,例如边框、背景、阴影等,主要用于装饰或显示用的小部件。在选择使用QWidget还是QFrame时,应根据具体的需求来选择适合的小部件来构建你的界面。
原文链接:https://blog.csdn.net/weixin_44697721/article/details/131721841
Qt QFrame
QFrame类是带有边框部件的基类,lineWidth调整边框边界线的宽度,midLineWidth是在边框中插入一条线的宽度,用于营造3D效果,此效果只有在Box/HlineVline凸起或者凹陷时有效。
QFrame::NoFrame:不绘制。
QFrame::Box:绘制一个四周边框。
QFrame::Panle:绘制面板,呈现凸起或者凹陷效果。
QFrame::Styledpanle:绘制矩形面板,依赖于当前GUI样式,凸起或凹陷效果。
QFrame::HLine:没有框架的水平线,可以作为分离器。
QFrame::VLine:没有框架的垂直线,可以作为分离器。
QFrame::WinPanel:windows风格矩形面板,凸起或凹陷效果。
QFrame::Plian:平面,没有3D效果。
QFrame::Raised:3D凸起。
QFrame::Sunken:3D凹陷。
原文链接:https://blog.csdn.net/baidu_33879812/article/details/108830580
:https://blog.csdn.net/qiujin000/article/details/128375175