How to use QFrame in Qt
Introduction[edit | edit source]
Qt provides the QFrame class which can be use to make a frame around the widget. You can make your application more attractive by using one of the type of frame given in this class.
QFrame is used as a base class for numerous widgets of Qt: QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, and QToolBox. The examples of this page show the various frame around the label widget (QLabel).
Various Function[edit | edit source]
Frame Style[edit | edit source]
The frame style is defined by the combination of a frame shape and a shadow style.
label->setFrameStyle(QFrame::Box | QFrame::Raised); label->setLineWidth(2); label1->setFrameStyle(QFrame::Box | QFrame::Sunken); label1->setLineWidth(2);
File:Saveraised.JPG
Frame Shape[edit | edit source]
label1->setFrameShape(Qt::StyledPanel);
File:Stylepanel.JPG
More information[edit | edit source]
For more functions and property visit: http://doc.trolltech.com/4.5/qframe.html
Code[edit | edit source]
- 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();
}