implement Menu layout

This commit is contained in:
laserpants 2016-04-18 10:11:09 +03:00
parent 96360a2310
commit 52930a6132
2 changed files with 57 additions and 0 deletions

View File

@ -1,11 +1,54 @@
#include <QWidget>
#include <QVBoxLayout>
#include <QPainter>
#include "menu.h"
MenuItem::MenuItem(QWidget *parent)
: FlatButton(parent)
{
setMinimumHeight(40);
}
MenuItem::MenuItem(const QString &text, QWidget *parent)
: FlatButton(text, parent)
{
setMinimumHeight(40);
}
MenuItem::~MenuItem()
{
}
Menu::Menu(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *layout = new QVBoxLayout;
setLayout(layout);
layout->setMargin(0);
layout->setSpacing(0);
QSizePolicy policy;
policy.setHorizontalPolicy(QSizePolicy::Expanding);
policy.setVerticalPolicy(QSizePolicy::Maximum);
setSizePolicy(policy);
layout->addWidget(new MenuItem("Item #1"));
layout->addWidget(new MenuItem("Item #2"));
layout->addWidget(new MenuItem("Item #3"));
layout->addWidget(new MenuItem("Item #4"));
}
Menu::~Menu()
{
}
void Menu::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.fillRect(rect(), Qt::white);
painter.drawRect(rect().adjusted(0, 0, -1, -1));
QWidget::paintEvent(event);
}

View File

@ -2,6 +2,17 @@
#define MENU_H
#include <QWidget>
#include "flatbutton.h"
class MenuItem : public FlatButton
{
Q_OBJECT
public:
explicit MenuItem(QWidget *parent = 0);
explicit MenuItem(const QString &text, QWidget *parent = 0);
~MenuItem();
};
class Menu : public QWidget
{
@ -10,6 +21,9 @@ class Menu : public QWidget
public:
explicit Menu(QWidget *parent = 0);
~Menu();
protected:
void paintEvent(QPaintEvent *event);
};
#endif // MENU_H