tp3 - debut soluce

flags
Francois DELOBEL 1 month ago
parent d3301cca9f
commit b2bdc17315

@ -0,0 +1,82 @@
# 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*
*.qbs.user*
CMakeLists.txt.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
# Directories with generated files
.moc/
.obj/
.pch/
.rcc/
.uic/
/build*/

@ -0,0 +1,37 @@
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QDebug>
#include "synchronisable.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;
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);
Synchronisable s{42}, copie{1};
s.setCpt(122);
qDebug() << s.cpt() << "\n";
engine.load(url);
return app.exec();
}

@ -0,0 +1,9 @@
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
}

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>

@ -0,0 +1,19 @@
#include "synchronisable.h"
Synchronisable::Synchronisable(int cpt, QObject *parent)
: QObject{parent},
m_cpt{cpt}
{}
int Synchronisable::cpt() const
{
return m_cpt;
}
void Synchronisable::setCpt(int newCpt)
{
if (m_cpt == newCpt)
return;
m_cpt = newCpt;
emit cptChanged(m_cpt);
}

@ -0,0 +1,22 @@
#ifndef SYNCHRONISABLE_H
#define SYNCHRONISABLE_H
#include <QObject>
class Synchronisable : public QObject
{
Q_OBJECT
Q_PROPERTY(int cpt READ cpt WRITE setCpt NOTIFY cptChanged FINAL)
public:
explicit Synchronisable(int cpt = 0, QObject *parent = nullptr);
int cpt() const;
void setCpt(int newCpt);
signals:
void cptChanged(int);
private:
int m_cpt;
};
#endif // SYNCHRONISABLE_H

@ -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 += \
main.cpp \
synchronisable.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 += \
synchronisable.h
Loading…
Cancel
Save