Qt - C++ - QWidget和QFrame的详细区别;QT批量隐藏控件并取消占位;QGroupBox

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::Plain0x0010框架和内容与周围环境齐平,没有任何3D效果
QFrame::Raised0x0020框架和内容显得凸起;使用当前色组的明暗颜色绘制3D凸起线
QFrame::Sunken0x0030框架和内容显得下沉;使用当前色组的明暗颜色绘制3D下沉线

 3、frameShape

        该属性标识框架的形状,效果参阅前文框架图片。

QFrame::Shape frameShape() const
void setFrameShape(QFrame::Shape)
名称描述
QFrame::NoFrame0不绘制任何东西
QFrame::Box0x0001绘制一个箱体环绕边框
QFrame::Panel0x0002绘制一个面板,使内容看起来凸起或凹陷
QFrame::StyledPanel0x0006绘制一个矩形面板,其外观取决于当前的GUI样式。它可以凸起,也可以凹陷。
QFrame::HLine0x0004绘制一条水平线用作分隔符,该水平线不包含任何内容
QFrame::VLine0x0005绘制一条垂直线用作分隔符,该垂直线不包含任何内容
QFrame::WinPanel0x0003绘制一个矩形面板,可以像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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值