Qt6.5类库详解:QFrame

1. QFrame介绍

QFrame是Qt框架中的一个框架控件类,主要用于在图形用户界面(GUI)中创建框架,并提供各种边框样式和功能。它是许多基础控件的基类,可以用于创建自定义的框架样式,或者作为其他需要边框控制的控件的基类。

QFrame的主要功能和特点包括:

  • 边框控制:QFrame提供了丰富的边框样式和功能,可以控制边框的凸起、凹下、阴影、线宽等。这使得开发人员可以方便地创建具有不同外观和风格的框架。
  • 框架形状:QFrame支持多种框架形状,包括矩形框、面板、Windows风格的面板等。这些形状可以根据需要进行选择和定制,以适应不同的应用场景。
  • 子类化:QFrame作为许多基础控件的基类,可以被其他控件类继承,并提供成员方法和属性给子类,用于实现子类的框架样式设计。这使得QFrame具有很高的灵活性和可扩展性。
  • 占位符框架:QFrame还可以直接用于创建不包含任何内容的简单占位符框架,用于在界面中预留空间或作为布局的一部分。

QFrame具有丰富的边框控制、框架形状和子类化功能。通过合理地使用QFrame,开发人员可以创建具有自定义样式和功能的框架,提高应用程序的用户界面质量和用户体验。

  • 如何使用:

头文件:#include <QFrame>

cmake:find_package(Qt6 REQUIRED COMPONENTS Widgets)

              target_link_libraries(mytarget PRIVATE Qt6::Widgets)

qmake:QT += widgets

继承于:QWidget

2. QFrame显示普通面板风格例子

#include <QFrame>
QFrame* p_frame = new QFrame(this);
p_frame->setGeometry(25, 25, 350, 150);
p_frame->setFrameShape(QFrame::Panel);
p_frame->setFrameShadow(QFrame::Raised);

3. QFrame常用属性

  • frameShape框架形状:

// 访问函数
Shape frameShape() const
void setFrameShape(Shape)

/**** 例子:普通Window风格面板框架 ****/
p_frame->setFrameShape(QFrame::WinPanel);
p_frame->setFrameShadow(QFrame::Raised);
  • frameShadow框架阴影:

// 访问函数
Shadow frameShadow() const
void setFrameShadow(Shadow)

/**** 例子 ****/
p_frame->setFrameShape(QFrame::WinPanel);
p_frame->setFrameShadow(QFrame::Sunken);

  • lineWidth线条宽度:

// 访问函数:默认 1
int lineWidth() const
void setLineWidth(int)

4. QFrame绘制水平线例子

#include <QFrame>
QFrame* p_frame = new QFrame(this);
p_frame->setGeometry(10, 10, 180, 5);
p_frame->setFrameShape(QFrame::HLine);
p_frame->setLineWidth(5);

5. QFrame绘制垂直线例子

#include <QFrame>
QFrame* p_frame = new QFrame(this);
p_frame->setGeometry(10, 18, 5, 200);
p_frame->setFrameShape(QFrame::VLine);
p_frame->setLineWidth(5);
p_frame->setStyleSheet("border: 5px solid blue;");

6. QFrame各种风格显示例子

功能:创建各种不同显示风格的QFrame控件。

  • .h 头文件源码:

#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>

class Dialog : public QDialog
{
    Q_OBJECT
public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();
};
#endif // DIALOG_H
  • .cpp 源文件源码:

#include "dialog.h"
#include <QFrame>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    this->setWindowTitle("20YC编程社区");
    this->resize(780, 360);

    // 绘制水平线
    QFrame* p_frame1 = new QFrame(this);
    p_frame1->setGeometry(10, 10, 680, 5);
    p_frame1->setFrameShape(QFrame::HLine);
    p_frame1->setLineWidth(5);

    // 绘制垂直线(指定线条颜色)
    QFrame* p_frame2 = new QFrame(this);
    p_frame2->setGeometry(10, 18, 5, 200);
    p_frame2->setFrameShape(QFrame::VLine);
    p_frame2->setLineWidth(5);
    p_frame2->setStyleSheet("border: 5px solid blue;");

    // 绘制方框
    QFrame* p_frame3 = new QFrame(this);
    p_frame3->setGeometry(25, 25, 150, 50);
    p_frame3->setFrameShape(QFrame::Box);

    // 绘制带阴影方框
    QFrame* p_frame4 = new QFrame(this);
    p_frame4->setGeometry(25, 125, 150, 50);
    p_frame4->setFrameShape(QFrame::Box);
    p_frame4->setFrameShadow(QFrame::Raised);

    // 绘制框架(带阴影效果1)
    QFrame* p_frame5 = new QFrame(this);
    p_frame5->setGeometry(225, 25, 150, 50);
    p_frame5->setFrameShape(QFrame::Panel);
    p_frame5->setFrameShadow(QFrame::Raised);

    // 绘制框架(带阴影效果2)
    QFrame* p_frame6 = new QFrame(this);
    p_frame6->setGeometry(225, 125, 150, 50);
    p_frame6->setFrameShape(QFrame::WinPanel);
    p_frame6->setFrameShadow(QFrame::Sunken);
}

Dialog::~Dialog()
{
}

7 附录:完整源码

关注公众号下载本示例完整源码(09_std_set_example.zip)。

-【End】-

#想了解更多精彩内容,关注下方公众号,还有示例源码、开发工具免费下载。

喜欢本文章,记得点赞、分享、关注哦~

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天恩软件工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值