Browse Source

Add hot reload

master
pouya 1 year ago
parent
commit
e964ea8782
  1. 4
      SepantaUIKit.pro
  2. 27
      SepantaUiKit/Colors.qml
  3. 14
      app.cpp
  4. 21
      app.h
  5. 20
      main.cpp
  6. 15
      main.qml

4
SepantaUIKit.pro

@ -5,6 +5,7 @@ QT += quick
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ SOURCES += \
app.cpp \
main.cpp main.cpp
RESOURCES += qml.qrc RESOURCES += qml.qrc
@ -19,3 +20,6 @@ QML_DESIGNER_IMPORT_PATH =
qnx: target.path = /tmp/$${TARGET}/bin qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target !isEmpty(target.path): INSTALLS += target
HEADERS += \
app.h

27
SepantaUiKit/Colors.qml

@ -2,22 +2,21 @@ import QtQuick 2.15
Item { Item {
//Primary //Primary
property var primaryEnable: "#B2F7EF" property string primaryEnable: "#B2F7EF"
property var primaryPressed: "#3CFCE6" property string primaryPressed: "#3CFCE6"
//Secondary //Secondary
property var secondaryEnable: "#007dff" property string secondaryEnable: "#007dff"
property var secondaryPressed: "#abb5be" property string secondaryPressed: "#abb5be"
//Tertiary //Tertiary
property var tertiaryEnable: "#E9E8E8" property string tertiaryEnable: "#E9E8E8"
property var tertiaryPressed: "#D0D0d0 property string tertiaryPressed: "#D0D0d0"
"
//Other //Other
property var white: "#f8f8f8" property string white: "#f8f8f8"
property var balck: "#0b0b0b" property string balck: "#0b0b0b"
property var success: "#28a745" property string success: "#28a745"
property var danger: "#dc3545" property string danger: "#dc3545"
property var warning: "#ffc107" property string warning: "#ffc107"
property var info: "#17a2b8" property string info: "#17a2b8"
property var gray: "#ced4da" property string gray: "#ced4da"
} }

14
app.cpp

@ -0,0 +1,14 @@
#include "app.h"
#include <qdebug.h>
App::App(QObject *parent): QObject (parent)
{
}
App::~App(){}
void App::loadQml()
{
m_engine->load("");
m_engine->load("qrc:/main.qml");
}

21
app.h

@ -0,0 +1,21 @@
#ifndef APP_H
#define APP_H
#include <QObject>
#include <QQmlApplicationEngine>
class App: public QObject
{
Q_OBJECT
public:
App(QObject* parent = Q_NULLPTR);
~App();
Q_INVOKABLE void loadQml();
void setEngine(QQmlApplicationEngine *engine) { m_engine = engine; }
private:
QQmlApplicationEngine* m_engine;
};
#endif // APP_H

20
main.cpp

@ -1,25 +1,19 @@
#include <QGuiApplication> #include <QGuiApplication>
#include <QQmlApplicationEngine> #include <QQmlApplicationEngine>
#include <QQmlContext>
#include "app.h"
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QGuiApplication app(argc, argv); QGuiApplication app(argc, argv);
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect( engine.load("qrc:/main.qml");
&engine, App appy;
&QQmlApplicationEngine::objectCreated, appy.setEngine(&engine);
&app, engine.rootContext()->setContextProperty("app",&appy);
[url](QObject *obj, const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
},
Qt::QueuedConnection);
engine.load(url);
return app.exec(); return app.exec();
} }

15
main.qml

@ -1,10 +1,21 @@
import QtQuick 2.13 import QtQuick 2.13
import QtQuick.Window 2.13 import QtQuick.Window 2.13
import "./SepantaUiKit/SKBtn"
import QtQuick.Window 2.11
Window { Window {
width: 1700 id: window
height: 900 width: 1600
height: 800
visible: true visible: true
title: "SepantaUiKit" title: "SepantaUiKit"
color: "black" color: "black"
Shortcut {
sequence: "F5"
onActivated: {
window.close()
app.loadQml()
}
}
} }

Loading…
Cancel
Save