From 5e04fb61973930cc245648cf98636184cc0c50ab Mon Sep 17 00:00:00 2001 From: Christoph Sterz Date: Sun, 9 Oct 2022 15:48:33 +0200 Subject: [PATCH] More Embedded --- .../2022-10-2-Embedded.pptx | Bin 89332 -> 97854 bytes .../qml_helloworld/qml_hello/.gitignore | 73 ++++++++++++++++++ .../qml_hello/countermanager.cpp | 7 ++ .../qml_helloworld/qml_hello/countermanager.h | 21 +++++ .../qml_helloworld/qml_hello/main.cpp | 25 ++++++ .../qml_helloworld/qml_hello/main.qml | 18 +++++ .../qml_helloworld/qml_hello/qml.qrc | 5 ++ .../qml_helloworld/qml_hello/qml_hello.pro | 25 ++++++ 8 files changed, 174 insertions(+) create mode 100644 Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/.gitignore create mode 100644 Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.cpp create mode 100644 Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/countermanager.h create mode 100644 Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.cpp create mode 100644 Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/main.qml create mode 100644 Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml.qrc create mode 100644 Day1-IntroductionGUIFrameworks/HelloWorlds/qml_helloworld/qml_hello/qml_hello.pro diff --git a/Day1-IntroductionGUIFrameworks/2022-10-2-Embedded.pptx b/Day1-IntroductionGUIFrameworks/2022-10-2-Embedded.pptx index 5e1bf3c7d10946a051884f1945f9f0ee46a01f27..c80e810992fa8543829e85bd1c36cf7bfe74c2ff 100644 GIT binary patch delta 26424 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 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