Qt Quick based coffee brewing control chart.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.cpp 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #include <QtGui>
  2. #include <QtDeclarative>
  3. #include "qmlapplicationviewer.h"
  4. #include "qmllineitem.h"
  5. #include "newpointcontrol.h"
  6. class QmlWindow : public QMainWindow
  7. {
  8. Q_OBJECT
  9. public:
  10. QmlWindow(QWidget *parent = NULL);
  11. Q_INVOKABLE QAction *addMenuItem(QString menu, QString item);
  12. signals:
  13. void newPoint(QVariantMap pointDescription);
  14. private:
  15. QHash<QString,QMenu *> menus;
  16. };
  17. QmlWindow::QmlWindow(QWidget *parent) : QMainWindow(parent)
  18. {
  19. QmlApplicationViewer *viewer = new QmlApplicationViewer;
  20. viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
  21. viewer->rootContext()->setContextProperty("window", this);
  22. viewer->setSource(QUrl("qrc:/qml/qml/BrewPlot/main.qml"));
  23. qApp->connect(viewer->engine(), SIGNAL(quit()), SLOT(quit()));
  24. QWidget *central = new QWidget;
  25. QHBoxLayout *layout = new QHBoxLayout;
  26. NewPointControl *control = new NewPointControl;
  27. layout->addWidget(control);
  28. layout->addWidget(viewer);
  29. central->setLayout(layout);
  30. setCentralWidget(central);
  31. viewer->setMinimumSize(viewer->sizeHint());
  32. connect(control, SIGNAL(newPoint(QVariantMap)),
  33. this, SIGNAL(newPoint(QVariantMap)));
  34. }
  35. QAction *QmlWindow::addMenuItem(QString menu, QString item)
  36. {
  37. QMenu *theMenu;
  38. if(menus.contains(menu))
  39. {
  40. theMenu = menus.value(menu);
  41. }
  42. else
  43. {
  44. theMenu = menuBar()->addMenu(menu);
  45. menus.insert(menu, theMenu);
  46. }
  47. return theMenu->addAction(item);
  48. }
  49. QML_DECLARE_TYPE(QmlWindow)
  50. int main(int argc, char *argv[])
  51. {
  52. QApplication app(argc, argv);
  53. qmlRegisterType<QmlLineItem>("CustomComponents", 1, 0, "Line");
  54. qmlRegisterType<QmlWindow>("CustomComponents", 1, 0, "Window");
  55. QmlWindow *window = new QmlWindow(NULL);
  56. window->setWindowTitle("BrewPlot");
  57. window->show();
  58. return app.exec();
  59. }
  60. #include "moc_main.cpp"