diff --git a/Day1-IntroductionGUIFrameworks/2022-10-2-Embedded.pptx b/Day1-IntroductionGUIFrameworks/2022-10-2-Embedded.pptx index 5e1bf3c..c80e810 100644 Binary files a/Day1-IntroductionGUIFrameworks/2022-10-2-Embedded.pptx and b/Day1-IntroductionGUIFrameworks/2022-10-2-Embedded.pptx differ diff --git a/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/.gitignore b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/.gitignore new file mode 100644 index 0000000..fab7372 --- /dev/null +++ b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/.gitignore @@ -0,0 +1,73 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + diff --git a/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.cpp b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.cpp new file mode 100644 index 0000000..aecb404 --- /dev/null +++ b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.cpp @@ -0,0 +1,7 @@ +#include "countermanager.h" + +CounterManager::CounterManager(QObject *parent) + : QObject{parent} +{ + m_counter = 0; +} diff --git a/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.h b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.h new file mode 100644 index 0000000..d2ec04b --- /dev/null +++ b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.h @@ -0,0 +1,21 @@ +#ifndef COUNTERMANAGER_H +#define COUNTERMANAGER_H + +#include + +class CounterManager : public QObject +{ + Q_OBJECT +public: + explicit CounterManager(QObject *parent = nullptr); + + +signals: + + +protected: +private: + int m_counter; +}; + +#endif // COUNTERMANAGER_H diff --git a/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.cpp b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.cpp new file mode 100644 index 0000000..e5fa5b6 --- /dev/null +++ b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.cpp @@ -0,0 +1,25 @@ +#include +#include +#include + +#include "countermanager.h" +int main(int argc, char *argv[]) +{ +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); +#endif + QGuiApplication app(argc, argv); + + QQmlApplicationEngine engine; + auto counterManager = new CounterManager(); + engine.rootContext()->setContextProperty("_counterManager", counterManager); + const QUrl url(QStringLiteral("qrc:/main.qml")); + QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, + &app, [url](QObject *obj, const QUrl &objUrl) { + if (!obj && url == objUrl) + QCoreApplication::exit(-1); + }, Qt::QueuedConnection); + engine.load(url); + + return app.exec(); +} diff --git a/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.qml b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.qml new file mode 100644 index 0000000..7989fc4 --- /dev/null +++ b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.qml @@ -0,0 +1,18 @@ +import QtQuick 2.15 +import QtQuick.Window 2.15 + +Window { + width: 640 + height: 480 + visible: true + title: qsTr("Hello World") + + Text { + text: "Counter is " + _counterManager.counter; + anchors.centerIn: parent + MouseArea{ + anchors.fill: parent + onClicked: {_counterManager.increase()} + } + } +} diff --git a/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml.qrc b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml.qrc new file mode 100644 index 0000000..5f6483a --- /dev/null +++ b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml.qrc @@ -0,0 +1,5 @@ + + + main.qml + + diff --git a/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml_hello.pro b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml_hello.pro new file mode 100644 index 0000000..a5f79fb --- /dev/null +++ b/Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml_hello.pro @@ -0,0 +1,25 @@ +QT += quick + +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + countermanager.cpp \ + main.cpp + +RESOURCES += qml.qrc + +# Additional import path used to resolve QML modules in Qt Creator's code model +QML_IMPORT_PATH = + +# Additional import path used to resolve QML modules just for Qt Quick Designer +QML_DESIGNER_IMPORT_PATH = + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target + +HEADERS += \ + countermanager.h