qt-material-widgets/components/menu.cpp

79 lines
1.5 KiB
C++
Raw Normal View History

2016-04-18 06:55:52 +00:00
#include <QWidget>
2016-04-18 07:11:09 +00:00
#include <QVBoxLayout>
#include <QPainter>
2016-04-27 21:01:27 +00:00
#include <QGraphicsDropShadowEffect>
2016-04-18 06:55:52 +00:00
#include "menu.h"
2016-04-18 07:11:09 +00:00
MenuItem::MenuItem(QWidget *parent)
: FlatButton(parent)
{
2016-04-29 03:37:05 +00:00
QFont font(this->font());
font.setCapitalization(QFont::MixedCase);
font.setPointSize(11);
font.setStyleName("Regular");
setFont(font);
2016-04-18 07:11:09 +00:00
}
MenuItem::MenuItem(const QString &text, QWidget *parent)
: FlatButton(text, parent)
{
2016-04-29 03:37:05 +00:00
QFont font(this->font());
font.setCapitalization(QFont::MixedCase);
font.setPointSize(11);
font.setStyleName("Regular");
setFont(font);
2016-04-18 07:11:09 +00:00
}
MenuItem::~MenuItem()
{
}
2016-04-24 22:19:13 +00:00
QSize MenuItem::sizeHint() const
{
2016-04-29 03:37:05 +00:00
return FlatButton::sizeHint().expandedTo(QSize(200, 50));
2016-04-24 22:19:13 +00:00
}
2016-04-18 06:55:52 +00:00
Menu::Menu(QWidget *parent)
: QWidget(parent)
{
2016-04-18 07:11:09 +00:00
QVBoxLayout *layout = new QVBoxLayout;
setLayout(layout);
layout->setMargin(0);
layout->setSpacing(0);
QSizePolicy policy;
policy.setVerticalPolicy(QSizePolicy::Maximum);
setSizePolicy(policy);
2016-04-27 21:01:27 +00:00
QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect;
effect->setBlurRadius(9);
effect->setOffset(QPoint(0, 0));
2016-04-29 03:37:05 +00:00
effect->setColor(QColor(0, 0, 0, 100));
2016-04-27 21:01:27 +00:00
setGraphicsEffect(effect);
2016-04-18 06:55:52 +00:00
}
Menu::~Menu()
{
}
2016-04-18 07:11:09 +00:00
2016-04-18 07:36:40 +00:00
void Menu::addMenuItem(MenuItem *item)
{
_items.push_back(item);
2016-04-18 07:36:40 +00:00
layout()->addWidget(item);
}
void Menu::addMenuItem(const QString &text)
{
addMenuItem(new MenuItem(text));
}
2016-04-18 07:11:09 +00:00
void Menu::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.fillRect(rect(), Qt::white);
QWidget::paintEvent(event);
}