diff options
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | CMakeLists.txt | 32 | ||||
-rw-r--r-- | locale/qcplt_en_US.ts | 3 | ||||
-rw-r--r-- | source/main.cpp | 31 | ||||
-rw-r--r-- | source/qml/main.qml | 8 |
5 files changed, 79 insertions, 0 deletions
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 $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>: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 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="en_US"></TS> 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 <QGuiApplication> +#include <QQmlApplicationEngine> + +#include <QLocale> +#include <QTranslator> + +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") +} |