Skip to content

Commit d66f88d

Browse files
committed
feat: opening Main qml window
1 parent dc8ad97 commit d66f88d

File tree

5 files changed

+38
-7
lines changed

5 files changed

+38
-7
lines changed

CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ project(SmartCar LANGUAGES CXX)
1313
set(CMAKE_INCLUDE_CURRENT_DIR ON)
1414

1515
set(CMAKE_AUTOMOC ON)
16+
set(CMAKE_AUTORCC ON)
1617

1718
set(CMAKE_CXX_STANDARD 17)
1819
set(CMAKE_CXX_STANDARD_REQUIRED ON)

client_app/app/CMakeLists.txt

+8-3
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,27 @@ set(SOURCES
2222
src/imagereceiver.cpp
2323
)
2424

25+
set(RESOURCES
26+
qml.qrc
27+
)
2528

2629
# ==== FINDING PACKAGES =========================================
2730

2831
# Qt
29-
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Network REQUIRED)
30-
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Network REQUIRED)
32+
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Network Gui Quick REQUIRED)
33+
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Network Gui Quick REQUIRED)
3134

3235

3336
# ==== MAKING TARGET =========================================
3437

35-
add_executable(${CLIENT_APP_TARGET} ${HEADERS} ${SOURCES})
38+
add_executable(${CLIENT_APP_TARGET} ${HEADERS} ${SOURCES} ${RESOURCES})
3639

3740
target_link_libraries(${CLIENT_APP_TARGET}
3841
PUBLIC
3942
Qt${QT_VERSION_MAJOR}::Core
4043
Qt${QT_VERSION_MAJOR}::Network
44+
Qt${QT_VERSION_MAJOR}::Gui
45+
Qt${QT_VERSION_MAJOR}::Quick
4146
common
4247
)
4348

client_app/app/qml.qrc

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<RCC>
2+
<qresource prefix="/">
3+
<file>qml/Main.qml</file>
4+
</qresource>
5+
</RCC>

client_app/app/qml/Main.qml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import QtQuick 2.15
2+
import QtQuick.Window 2.15
3+
4+
Window {
5+
width: 1296
6+
height: 972
7+
visible: true
8+
title: qsTr("Smart Car Preview")
9+
}

client_app/app/src/main.cpp

+15-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
*
66
*************************************************************************/
77

8-
#include <QCoreApplication>
8+
#include <QGuiApplication>
9+
#include <QQmlApplicationEngine>
910
#include <QDebug>
1011

1112
#include <imagereceiver.h>
@@ -16,14 +17,24 @@ int main(int argc, char *argv[])
1617
{
1718
qRegisterMetaType<Frame>("Frame");
1819

19-
QCoreApplication a(argc, argv);
20+
QGuiApplication app(argc, argv);
2021

2122
ImageReceiver receiver;
2223
receiver.start();
2324

24-
QObject::connect(&receiver, &ImageReceiver::receivedFrame, &a, [](Frame frame) {
25+
QObject::connect(&receiver, &ImageReceiver::receivedFrame, &app, [](Frame frame) {
2526
qDebug() << "received frame" << frame.sequence;
2627
});
2728

28-
return a.exec();
29+
QQmlApplicationEngine engine;
30+
engine.addImportPath("qrc:/"); // Import modules (assets, etc)
31+
const QUrl url(QStringLiteral("qrc:/qml/Main.qml"));
32+
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
33+
&app, [url](QObject *obj, const QUrl &objUrl) {
34+
if (!obj && url == objUrl)
35+
QCoreApplication::exit(-1);
36+
}, Qt::QueuedConnection);
37+
engine.load(url);
38+
39+
return app.exec();
2940
}

0 commit comments

Comments
 (0)