From d77b11b20dcd9e6c5adbc541f29bf5cdde9db1d0 Mon Sep 17 00:00:00 2001 From: rtk0c Date: Tue, 28 Jun 2022 15:39:26 -0700 Subject: Initial QtQuick project --- .gitignore | 5 +++++ CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ locale/qcplt_en_US.ts | 3 +++ source/main.cpp | 31 +++++++++++++++++++++++++++++++ source/qml/main.qml | 8 ++++++++ 5 files changed, 79 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 locale/qcplt_en_US.ts create mode 100644 source/main.cpp create mode 100644 source/qml/main.qml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5d9d765 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea/ +build/ +cache/ +CMakeLists.txt.user +compile_commands.json diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..07d4d08 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.16) + +project(QCplt VERSION 0.1 LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(Qt6 6.2 COMPONENTS Quick REQUIRED) + +qt_add_executable(AppQCplt + source/main.cpp +) + +qt_add_qml_module(AppQCplt + URI QCplt + VERSION 1.0 + QML_FILES source/qml/main.qml +) + +set_target_properties(AppQCplt PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER rtk0c.github.io + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE +) + +target_compile_definitions(AppQCplt + PRIVATE $<$,$>:QT_QML_DEBUG>) +target_link_libraries(AppQCplt + PRIVATE Qt6::Quick) diff --git a/locale/qcplt_en_US.ts b/locale/qcplt_en_US.ts new file mode 100644 index 0000000..edd0d34 --- /dev/null +++ b/locale/qcplt_en_US.ts @@ -0,0 +1,3 @@ + + + diff --git a/source/main.cpp b/source/main.cpp new file mode 100644 index 0000000..699e881 --- /dev/null +++ b/source/main.cpp @@ -0,0 +1,31 @@ +#include +#include + +#include +#include + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + QTranslator translator; + const QStringList uiLanguages = QLocale::system().uiLanguages(); + for (const QString &locale : uiLanguages) { + const QString baseName = "qcplt_" + QLocale(locale).name(); + if (translator.load(":/i18n/" + baseName)) { + app.installTranslator(&translator); + break; + } + } + + QQmlApplicationEngine engine; + const QUrl url(u"qrc:/qcplt/main.qml"_qs); + 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/source/qml/main.qml b/source/qml/main.qml new file mode 100644 index 0000000..41424f8 --- /dev/null +++ b/source/qml/main.qml @@ -0,0 +1,8 @@ +import QtQuick + +Window { + width: 640 + height: 480 + visible: true + title: qsTr("Hello World") +} -- cgit v1.2.3-70-g09d2