QFrame类是带有边框的部件的基类。它的子类包括最常用的标签部件QLabel,另外还有QLCDNumber、QSplitter、QStackedWidget、QToolBox和QAbstractScrollArea类。
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标签。最后,设置了框架的边框样式为面板和凹陷。