implement addMenuItem method

This commit is contained in:
laserpants 2016-04-18 10:36:40 +03:00
parent 52930a6132
commit d2e33cc17e
4 changed files with 27 additions and 7 deletions

View File

@ -7,12 +7,14 @@ MenuItem::MenuItem(QWidget *parent)
: FlatButton(parent) : FlatButton(parent)
{ {
setMinimumHeight(40); setMinimumHeight(40);
//setStyleSheet("text-align: left;");
} }
MenuItem::MenuItem(const QString &text, QWidget *parent) MenuItem::MenuItem(const QString &text, QWidget *parent)
: FlatButton(text, parent) : FlatButton(text, parent)
{ {
setMinimumHeight(40); setMinimumHeight(40);
//setStyleSheet("text-align: left;");
} }
MenuItem::~MenuItem() MenuItem::~MenuItem()
@ -32,17 +34,22 @@ Menu::Menu(QWidget *parent)
policy.setHorizontalPolicy(QSizePolicy::Expanding); policy.setHorizontalPolicy(QSizePolicy::Expanding);
policy.setVerticalPolicy(QSizePolicy::Maximum); policy.setVerticalPolicy(QSizePolicy::Maximum);
setSizePolicy(policy); 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() Menu::~Menu()
{ {
} }
void Menu::addMenuItem(MenuItem *item)
{
layout()->addWidget(item);
}
void Menu::addMenuItem(const QString &text)
{
addMenuItem(new MenuItem(text));
}
void Menu::paintEvent(QPaintEvent *event) void Menu::paintEvent(QPaintEvent *event)
{ {
QPainter painter(this); QPainter painter(this);

View File

@ -22,6 +22,9 @@ public:
explicit Menu(QWidget *parent = 0); explicit Menu(QWidget *parent = 0);
~Menu(); ~Menu();
void addMenuItem(MenuItem *item);
void addMenuItem(const QString &text);
protected: protected:
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
}; };

View File

@ -13,12 +13,22 @@ MenuExamples::MenuExamples(QWidget *parent)
{ {
Menu *menu = new Menu; Menu *menu = new Menu;
menu->addMenuItem("Maps");
menu->addMenuItem("Books");
menu->addMenuItem("Flights");
menu->addMenuItem("Apps");
ExampleView *view = new ExampleView; ExampleView *view = new ExampleView;
view->setWidget(menu); view->setWidget(menu);
Frame *frame = new Frame; Frame *frame = new Frame;
frame->setCodeSnippet( frame->setCodeSnippet(
"hello" "Menu *menu = new Menu;\n"
"\n"
"menu->addMenuItem(\"Maps\");\n"
"menu->addMenuItem(\"Books\");\n"
"menu->addMenuItem(\"Flights\");\n"
"menu->addMenuItem(\"Apps\");\n"
); );
frame->setWidget(view); frame->setWidget(view);

View File

@ -7,7 +7,7 @@
void Style::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, void Style::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
const QWidget *w) const const QWidget *w) const
{ {
// qDebug() << pe; qDebug() << pe;
switch (pe) { switch (pe) {
case PE_FrameFocusRect: case PE_FrameFocusRect: