QT QFrame类

QFrame类是带有边框的部件的基类。它的子类包括最常用的标签部件QLabel,另外还有QLCDNumberQSplitterQStackedWidgetQToolBoxQAbstractScrollArea类。

QAbstractScrollArea类是所有带有滚动区域的部件类的抽象基类,这里需要说明,Qt中凡是带有 Abstract 字样的类都是抽象基类。抽象基类是不能直接使用的,但是可以继承该类实现自己的类,或者使用它提供的子类。

QAbstractScrollArea的子类中有最常用的文本编辑器类QTextEdit类和各种项目视图类,

带边框部件最主要的特点就是可以有一个明显的边界框架。QFrame类的主要功能就是用来实现不同的边框效果,这主要是由边框形状(Shape)和边框阴影(Shadow)组合来形成的。

QFrame类中定义的主要边框形状、边框阴影如表所列。其中lineWidth是边框边界线的宽度;而midLineWidth是在边框中额外插入的一条线的宽度,这条线的作用是为了形成3D效果,并且只在Box,Hline和 VLine表现为凸起或者凹陷时有用。

QFrame类边框形状的取值

常量

描述

QFrame::NoFrame

QFrame不进行绘制

QFrame::Box

QFrame在它的内容四周绘制一个边框

QFrame::Panel

QFrame绘制一个面板,使得内容表现为凸起或者凹陷

QFrame::StyledPanel

绘制一个矩形面板它的效果依赖于当前的GUI样式,可以凸起或凹陷

QFrame::HLine

QFrame绘制一条水平线,没有任何框架(可以作为分离器)

QFrame::VLine

QFrame绘制一条垂直线,没有任何框架(可以作为分离器)

QFrame::WinPanel

绘制一个类似于Windows2000中的矩形面板,可以凸起或者凹陷

QFrame类边框阴影的取值

常量

描述

QFrame::Plain

边框和内容没有3D效果,与四周界面在同一水平面上

QFrame::Raised

边框和内容表现为凸起,具有 3D效果

QFrame::Sunken

边框和内容表现为凹陷,具有3D效果

QFrame是Qt库中的一种基本图形组件,通常用于组织其他小部件或者作为容器使用。QFrame没有特定的功能或行为,而是提供了一种通用的方式来进行定制化的图形布局。

以下是一些常用的属性和功能:

frameShape: 设置框架的形状和样式,如边框、阴影和凹陷效果等。

lineWidth: 设置框架的线条宽度。

midLineWidth: 设置框架中间线条的宽度。

frameShadow: 设置框架阴影的效果。

frameStyle: 设置框架的整体风格和外观。

layout: 定义子部件的布局。

setLineWidth: 设置框架的线条宽度。

setMidLineWidth: 设置框架中间线条的宽度。

setFrameShadow: 设置框架阴影的效果。

setFrameStyle: 设置框架的整体风格和外观。

setSizePolicy: 设置框架大小策略。

QFrame示例代码如下:

#include

#include

#include

#include

#include

class MainWindow : public QMainWindow

{

public:

    MainWindow()

    {

        frame = new QFrame(this);

        QVBoxLayout *layout = new QVBoxLayout(frame);

        QLabel *label = new QLabel("This is a QFrame", frame);

        layout->addWidget(label);

        // 设置边框样式

        frame->setFrameStyle(QFrame::Panel | QFrame::Sunken);

    }

private:

    QFrame *frame;

};

int main(int argc, char *argv[])

{

    QApplication app(argc, argv);

    MainWindow window;

    window.show();

    return app.exec();

}

在这个例子中,首先创建了一个QMainWindow窗口,然后在其中创建了一个QFrame框架。接着,在框架中添加了一个QLabel标签。最后,设置了框架的边框样式为面板和凹陷。

你可能感兴趣的:(qt,开发语言)