add boilerplate for Avatar component

This commit is contained in:
laserpants 2016-04-14 17:21:28 +03:00
parent bde2125000
commit 0f6d9f6aa9
7 changed files with 110 additions and 2 deletions

31
components/avatar.cpp Normal file
View File

@ -0,0 +1,31 @@
#include <QWidget>
#include <QPainter>
#include "avatar.h"
Avatar::Avatar(QWidget *parent)
: QWidget(parent)
{
}
Avatar::~Avatar()
{
}
void Avatar::mousePressEvent(QMouseEvent *event)
{
QWidget::mousePressEvent(event);
}
void Avatar::mouseReleaseEvent(QMouseEvent *event)
{
QWidget::mouseReleaseEvent(event);
}
void Avatar::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawRect(0, 50, 50, 50);
QWidget::paintEvent(event);
}

20
components/avatar.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef AVATAR_H
#define AVATAR_H
#include <QWidget>
class Avatar : public QWidget
{
Q_OBJECT
public:
explicit Avatar(QWidget *parent = 0);
~Avatar();
protected:
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
};
#endif // AVATAR_H

View File

@ -0,0 +1,30 @@
#include <QLayout>
#include <QEvent>
#include "avatarexamples.h"
#include "components/avatar.h"
#include "exampleview.h"
#include "frame.h"
AvatarExamples::AvatarExamples(QWidget *parent)
: ExampleList(parent)
{
QLayout *layout = widget()->layout();
{
Avatar *avatar = new Avatar;
ExampleView *view = new ExampleView;
view->setWidget(avatar);
Frame *frame = new Frame;
frame->setCodeSnippet(
"hello"
);
frame->setWidget(view);
layout->addWidget(frame);
} }
AvatarExamples::~AvatarExamples()
{
}

15
examples/avatarexamples.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef AVATAREXAMPLES_H
#define AVATAREXAMPLES_H
#include "examplelist.h"
class AvatarExamples : public ExampleList
{
Q_OBJECT
public:
explicit AvatarExamples(QWidget *parent = 0);
~AvatarExamples();
};
#endif // AVATAREXAMPLES_H

View File

@ -17,6 +17,7 @@
#include "examples/checkboxexamples.h"
#include "examples/textfieldexamples.h"
#include "examples/listexamples.h"
#include "examples/avatarexamples.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent),
@ -33,6 +34,7 @@ MainWindow::MainWindow(QWidget *parent)
_checkboxExamples(new CheckboxExamples),
_textFieldExamples(new TextFieldExamples),
_listExamples(new ListExamples),
_avatarExamples(new AvatarExamples),
_about(new About)
{
_initWidget();
@ -70,6 +72,8 @@ void MainWindow::showWidget(QAction *action)
_layout->setCurrentWidget(_textFieldExamples);
} else if ("List" == text) {
_layout->setCurrentWidget(_listExamples);
} else if ("Avatar" == text) {
_layout->setCurrentWidget(_avatarExamples);
} else {
_layout->setCurrentWidget(_about);
}
@ -93,6 +97,7 @@ void MainWindow::_initWidget()
_layout->addWidget(_checkboxExamples);
_layout->addWidget(_textFieldExamples);
_layout->addWidget(_listExamples);
_layout->addWidget(_avatarExamples);
setCentralWidget(widget);
}
@ -109,6 +114,7 @@ void MainWindow::_initMenu() const
QMenu *help = new QMenu("&Help");
components->addAction("App Bar");
components->addAction("Avatar");
QMenu *buttons = new QMenu("Buttons");
components->addMenu(buttons);

View File

@ -16,6 +16,7 @@ class RadioButtonExamples;
class CheckboxExamples;
class TextFieldExamples;
class ListExamples;
class AvatarExamples;
class QStackedLayout;
class MainWindow : public QMainWindow
@ -46,6 +47,7 @@ private:
CheckboxExamples *const _checkboxExamples;
TextFieldExamples *const _textFieldExamples;
ListExamples *const _listExamples;
AvatarExamples *const _avatarExamples;
About *const _about;
};

View File

@ -43,7 +43,9 @@ SOURCES += main.cpp\
examples/radiobuttonexamples.cpp \
examples/checkboxexamples.cpp \
examples/textfieldexamples.cpp \
examples/listexamples.cpp
examples/listexamples.cpp \
components/avatar.cpp \
examples/avatarexamples.cpp
HEADERS += mainwindow.h \
style.h \
@ -80,4 +82,6 @@ HEADERS += mainwindow.h \
examples/radiobuttonexamples.h \
examples/checkboxexamples.h \
examples/textfieldexamples.h \
examples/listexamples.h
examples/listexamples.h \
components/avatar.h \
examples/avatarexamples.h