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.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. private:
  13. QHash<QString,QMenu *> menus;
  14. };
  15. QmlWindow::QmlWindow(QWidget *parent) : QMainWindow(parent)
  16. {
  17. }
  18. QAction *QmlWindow::addMenuItem(QString menu, QString item)
  19. {
  20. QMenu *theMenu;
  21. if(menus.contains(menu))
  22. {
  23. theMenu = menus.value(menu);
  24. }
  25. else
  26. {
  27. theMenu = menuBar()->addMenu(menu);
  28. menus.insert(menu, theMenu);
  29. }
  30. return theMenu->addAction(item);
  31. }
  32. QML_DECLARE_TYPE(QmlWindow)
  33. int main(int argc, char *argv[])
  34. {
  35. QApplication app(argc, argv);
  36. qmlRegisterType<QmlLineItem>("CustomComponents", 1, 0, "Line");
  37. qmlRegisterType<QmlWindow>("CustomComponents", 1, 0, "Window");
  38. QmlWindow *window = new QmlWindow(NULL);
  39. window->setWindowTitle("BrewPlot");
  40. QmlApplicationViewer *viewer = new QmlApplicationViewer;
  41. viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
  42. viewer->rootContext()->setContextProperty("window", window);
  43. viewer->setSource(QUrl("qrc:/qml/qml/BrewPlot/main.qml"));
  44. app.connect(viewer->engine(), SIGNAL(quit()), SLOT(quit()));
  45. QWidget *central = new QWidget;
  46. QHBoxLayout *layout = new QHBoxLayout;
  47. NewPointControl *control = new NewPointControl;
  48. layout->addWidget(control);
  49. layout->addWidget(viewer);
  50. central->setLayout(layout);
  51. window->setCentralWidget(central);
  52. viewer->setMinimumSize(viewer->sizeHint());
  53. window->show();
  54. return app.exec();
  55. }
  56. #include "moc_main.cpp"