修复Android和PC端适配问题

This commit is contained in:
2026-05-01 11:35:44 +08:00
parent 9de69ba60d
commit 0e7d5fab2b
4 changed files with 803 additions and 354 deletions
+1
View File
@@ -3,6 +3,7 @@ build/
build-*/
cmake-build-*/
out/
dist/
# CMake generated files
CMakeCache.txt
+19
View File
@@ -4,6 +4,10 @@ project(rewrite_qt VERSION 1.0.0 LANGUAGES CXX)
set(REWRITE_QT_DISPLAY_NAME "人脸识别考勤系统")
set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml")
set(REWRITE_QT_OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dist")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${REWRITE_QT_OUTPUT_DIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${REWRITE_QT_OUTPUT_DIR}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${REWRITE_QT_OUTPUT_DIR}")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
@@ -20,6 +24,15 @@ file(MAKE_DIRECTORY "${REWRITE_QT_AUTOGEN_DIR}")
find_package(Qt6 6.2 REQUIRED COMPONENTS Core Gui Qml Quick QuickControls2 Network)
get_target_property(REWRITE_QT_QMAKE_EXECUTABLE Qt6::qmake IMPORTED_LOCATION)
if(REWRITE_QT_QMAKE_EXECUTABLE)
execute_process(
COMMAND "${REWRITE_QT_QMAKE_EXECUTABLE}" -query QT_INSTALL_QML
OUTPUT_VARIABLE REWRITE_QT_INSTALL_QML
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
qt_standard_project_setup()
set(REWRITE_QT_APP_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/favicon.ico")
@@ -46,6 +59,12 @@ qt_add_executable(apprewrite_qt
src/FaceListModel.cpp
)
if(REWRITE_QT_INSTALL_QML)
target_compile_definitions(apprewrite_qt PRIVATE
REWRITE_QT_INSTALL_QML="${REWRITE_QT_INSTALL_QML}"
)
endif()
if(WIN32 AND EXISTS "${REWRITE_QT_APP_ICON}")
set(REWRITE_QT_WIN32_ICON_RC "${CMAKE_CURRENT_BINARY_DIR}/app_icon.rc")
configure_file(cmake/app_icon.rc.in "${REWRITE_QT_WIN32_ICON_RC}" @ONLY)
+12
View File
@@ -1,5 +1,7 @@
#include <QGuiApplication>
#include <QIcon>
#include <QLibraryInfo>
#include <QDir>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QQuickStyle>
@@ -32,6 +34,16 @@ int main(int argc, char *argv[])
AppController controller;
QQmlApplicationEngine engine;
const QString qmlImportPath = QLibraryInfo::path(QLibraryInfo::QmlImportsPath);
if (!qmlImportPath.isEmpty()) {
engine.addImportPath(qmlImportPath);
}
#if defined(REWRITE_QT_INSTALL_QML)
const QString qtInstallQmlPath = QStringLiteral(REWRITE_QT_INSTALL_QML);
if (QDir(qtInstallQmlPath).exists()) {
engine.addImportPath(qtInstallQmlPath);
}
#endif
engine.rootContext()->setContextProperty("appController", &controller);
const QUrl url(QStringLiteral("qrc:/qml/Main.qml"));
+771 -354
View File
File diff suppressed because it is too large Load Diff