From 52930a61320ddca774389c4e8fa24ebc3e6a3c9c Mon Sep 17 00:00:00 2001 From: laserpants Date: Mon, 18 Apr 2016 10:11:09 +0300 Subject: [PATCH] implement Menu layout --- components/menu.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ components/menu.h | 14 ++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/components/menu.cpp b/components/menu.cpp index b139838..96e1d2a 100644 --- a/components/menu.cpp +++ b/components/menu.cpp @@ -1,11 +1,54 @@ #include +#include +#include #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); +} diff --git a/components/menu.h b/components/menu.h index 68c726b..01009a8 100644 --- a/components/menu.h +++ b/components/menu.h @@ -2,6 +2,17 @@ #define MENU_H #include +#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