/*
继承了QWidget。
被QGroupBox、QScrollView、QDockWindow、QGrid、QHBox、QLabel、QLCDNumber、QLineEdit、QMenuBar、QPopupMenu、QProgressBar、QSplitter、QtTableView和QWidgetStack继承。
成员类型文档
QFrame::Shadow
这个枚举类型定义了QFrame的框架所使用的三维效果。当前定义的效果有:
QFrame::Plain - 框架和内容看来和周围一样高
QFrame::Raised - 框架和内容看起来凸起
QFrame::Sunken - 框架和内容看起来凹陷
QFrame::MShadow - 内部的,对于阴影的掩码
Shadow和QFrame::Shape、lineWidth()和midLineWidth()相互作用。类文档中的框架的图片描绘的比这些词语更好。
也可以参考QFrame::Shape、lineWidth和midLineWidth。
QFrame::Shape
这个枚举类型定义了QFrame的框架所使用的外形。当前定义的效果有:
NoFrame - QFrame不画任何东西
Box - QFrame在它的内容周围画一个框
Panel - QFrame画一个平板使内容看起来凸起或者凹陷
WinPanel - 像Panel,但QFrame绘制三维效果的方式和Microsoft Windows 95(及其它)的一样
ToolBarPanel - QFrame调用QStyle::drawToolBarPanel()
MenuBarPanel - QFrame调用QStyle::drawMenuBarPanel()
HLine - QFrame绘制一个水平线,但没有框任何东西(作为分隔是有用的)
VLine - QFrame绘制一个竖直线,但没有框任何东西(作为分隔是有用的)
StyledPanel - QFrame调用QStyle::drawPanel()
PopupPanel - QFrame调用QStyle::drawPopupPanel()
当它不调用QStyle时,Shape和QFrame::Shadow、lineWidth()和midLineWidth()相互作用来创建整个结果。类文档中的框架的图片描绘的比这些词语更好。
*/
#include <QApplication>
#include <QLabel>
#include <QFrame>
#include <QVBoxLayout>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *win = new QWidget;
QLabel *label = new QLabel("Box");
QLabel *label1 = new QLabel("Panel");
QLabel *label2 = new QLabel("Winpanel");
QLabel *label3 = new QLabel("H line");
QLabel *label4 = new QLabel("V line");
QLabel *label5 = new QLabel("Styled Panel");
label->setFrameStyle(QFrame::Box | QFrame::Raised);
label->setLineWidth(2);
label1->setFrameStyle(QFrame::Panel | QFrame::Raised);
label1->setLineWidth(2);
label2->setFrameStyle(QFrame::WinPanel | QFrame::Raised);
label2->setLineWidth(2);
label3->setFrameStyle(QFrame::HLine | QFrame::Raised);
label3->setLineWidth(2);
label4->setFrameStyle(QFrame::VLine | QFrame::Raised);
label4->setLineWidth(2);
label5->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
label5->setLineWidth(2);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(label);
layout->addWidget(label1);
layout->addWidget(label2);
layout->addWidget(label3);
layout->addWidget(label4);
layout->addWidget(label5);
win->setLayout(layout);
win->show();
return app.exec();
}