Qt6.5类库实例大全:QFrame

2023-12-13 20:09:08

哈喽大家好,我是20YC小二!欢迎扫码关注公众号,现在可免费领取《C++程序员》在线视频教程哦!

~下面开始今天的分享内容~


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()
{
}

文章来源:https://blog.csdn.net/yanghz/article/details/134959194
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。