From ae582afd1bd27f4bac33f46111be62485f4d2c20 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 22 May 2020 09:47:09 +0200 Subject: [PATCH] Add IOT dashboard example --- examples/examples.pro | 1 + examples/iot-dashboard/MainWindow.cpp | 25 ++++++++++++++++++ examples/iot-dashboard/MainWindow.h | 22 ++++++++++++++++ examples/iot-dashboard/MenuBar.cpp | 20 ++++++++++++++ examples/iot-dashboard/MenuBar.h | 17 ++++++++++++ examples/iot-dashboard/iot-dashboard.pro | 11 ++++++++ examples/iot-dashboard/main.cpp | 33 ++++++++++++++++++++++++ 7 files changed, 129 insertions(+) create mode 100644 examples/iot-dashboard/MainWindow.cpp create mode 100644 examples/iot-dashboard/MainWindow.h create mode 100644 examples/iot-dashboard/MenuBar.cpp create mode 100644 examples/iot-dashboard/MenuBar.h create mode 100644 examples/iot-dashboard/iot-dashboard.pro create mode 100644 examples/iot-dashboard/main.cpp diff --git a/examples/examples.pro b/examples/examples.pro index 5949b574..d27f9f9a 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -4,6 +4,7 @@ TEMPLATE = subdirs SUBDIRS += \ desktop \ gallery \ + iot-dashboard \ layouts \ listbox \ messagebox \ diff --git a/examples/iot-dashboard/MainWindow.cpp b/examples/iot-dashboard/MainWindow.cpp new file mode 100644 index 00000000..0479aae1 --- /dev/null +++ b/examples/iot-dashboard/MainWindow.cpp @@ -0,0 +1,25 @@ +#include "MainWindow.h" +#include "MenuBar.h" + +#include + +MainWindow::MainWindow() : QskWindow() +{ + setFixedSize( { 1024, 600 } ); + setTitle( "IOT dashboard" ); + + m_mainLayout = new QskLinearBox( Qt::Horizontal, contentItem() ); + + addMenuBar(); + addMainContent(); +} + +void MainWindow::addMenuBar() +{ + auto* menuBar = new MenuBar( m_mainLayout ); +} + +void MainWindow::addMainContent() +{ + +} diff --git a/examples/iot-dashboard/MainWindow.h b/examples/iot-dashboard/MainWindow.h new file mode 100644 index 00000000..36a5b63a --- /dev/null +++ b/examples/iot-dashboard/MainWindow.h @@ -0,0 +1,22 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +class QskLinearBox; + +class MainWindow : public QskWindow +{ + Q_OBJECT + +public: + MainWindow(); + +private: + void addMenuBar(); + void addMainContent(); + + QskLinearBox* m_mainLayout; +}; + +#endif // MAINWINDOW_H diff --git a/examples/iot-dashboard/MenuBar.cpp b/examples/iot-dashboard/MenuBar.cpp new file mode 100644 index 00000000..51497e04 --- /dev/null +++ b/examples/iot-dashboard/MenuBar.cpp @@ -0,0 +1,20 @@ +#include "MenuBar.h" + +#include + +MenuBar::MenuBar( QQuickItem *parent ) : QskLinearBox( Qt::Vertical, parent ) +{ + setSizePolicy( QskSizePolicy::Minimum, QskSizePolicy::Expanding ); + setAutoLayoutChildren( true ); + setAutoAddChildren( true ); + + setBackgroundColor( { 0, 35, 102 } ); // ### style + + m_entries = { "Home", "Details", "Statistics", "Usage" }; + + for( const auto entry : m_entries ) + { + auto* label = new QskTextLabel( entry, this ); + label->setTextColor( Qt::white ); // ### style + } +} diff --git a/examples/iot-dashboard/MenuBar.h b/examples/iot-dashboard/MenuBar.h new file mode 100644 index 00000000..9f0e1fd9 --- /dev/null +++ b/examples/iot-dashboard/MenuBar.h @@ -0,0 +1,17 @@ +#ifndef MENUBAR_H +#define MENUBAR_H + +#include + +class MenuBar : public QskLinearBox +{ + Q_OBJECT + +public: + MenuBar( QQuickItem* parent ); + +private: + QList< QString > m_entries; +}; + +#endif // MENUBAR_H diff --git a/examples/iot-dashboard/iot-dashboard.pro b/examples/iot-dashboard/iot-dashboard.pro new file mode 100644 index 00000000..ac3eca95 --- /dev/null +++ b/examples/iot-dashboard/iot-dashboard.pro @@ -0,0 +1,11 @@ +CONFIG += qskexample + +SOURCES += \ + MenuBar.cpp \ + main.cpp \ + MainWindow.cpp + +HEADERS += \ + MainWindow.h \ + MenuBar.h + diff --git a/examples/iot-dashboard/main.cpp b/examples/iot-dashboard/main.cpp new file mode 100644 index 00000000..f44215d1 --- /dev/null +++ b/examples/iot-dashboard/main.cpp @@ -0,0 +1,33 @@ +#include +#include + +#include +#include +#include +#include + +#include + +#include "MainWindow.h" + +int main( int argc, char* argv[] ) +{ + QGuiApplication app( argc, argv ); + + SkinnyFont::init( &app ); + +// QskShortcutMap::addShortcut( QKeySequence( Qt::CTRL + Qt::Key_T ), +// false, skinFactory, SLOT(toggleScheme()) ); + +// QskShortcutMap::addShortcut( QKeySequence( Qt::CTRL + Qt::Key_S ), +// false, skinFactory, SLOT(rotateSkin()) ); + + // With CTRL-B you can rotate a couple of visual debug modes + SkinnyShortcut::enable( SkinnyShortcut::DebugBackground | + SkinnyShortcut::DebugStatistics | SkinnyShortcut::Quit ); + + MainWindow window; + window.show(); + + return app.exec(); +}