How to use QFrame in Qt

From Qt Wiki
Jump to navigation Jump to search

Template:ArticleMetaData

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]

  1. include <QApplication>
  2. include <QLabel>
  3. include <QFrame>
  4. include <QVBoxLayout>
  5. 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(); }

File:Frame.jpg