This commit is contained in:
2025-10-21 23:47:29 +08:00
parent 908cda34e6
commit 431a94a4fb
97 changed files with 34329 additions and 0 deletions

596
C++/2.2.6/Makefile Normal file
View File

@@ -0,0 +1,596 @@
#############################################################################
# Makefile for building: untitled2
# Generated by qmake (3.1) (Qt 6.9.1)
# Project: untitled2.pro
# Template: app
# Command: D:\Qt\6.9.1\mingw_64\bin\qmake.exe -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
#############################################################################
MAKEFILE = Makefile
EQ = =
first: release
install: release-install
uninstall: release-uninstall
QMAKE = D:\Qt\6.9.1\mingw_64\bin\qmake.exe
DEL_FILE = del
CHK_DIR_EXISTS= if not exist
MKDIR = mkdir
COPY = copy /y
COPY_FILE = copy /y
COPY_DIR = xcopy /s /q /y /i
INSTALL_FILE = copy /y
INSTALL_PROGRAM = copy /y
INSTALL_DIR = xcopy /s /q /y /i
QINSTALL = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall -exe
DEL_FILE = del
SYMLINK = $(QMAKE) -install ln -f -s
DEL_DIR = rmdir
MOVE = move
IDC = idc
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE = launcher_res.o
SED = $(QMAKE) -install sed
MOVE = move
SUBTARGETS = \
release \
debug
release: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-all: FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall
debug: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-all: FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
Makefile: untitled2.pro D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf \
.qmake.stash \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf \
untitled2.pro \
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl \
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf \
resources.qrc
$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf:
.qmake.stash:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf:
untitled2.pro:
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl:
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf:
resources.qrc:
qmake: FORCE
@$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
qmake_all: FORCE
make_first: release-make_first debug-make_first FORCE
all: release-all debug-all FORCE
clean: release-clean debug-clean FORCE
distclean: release-distclean debug-distclean FORCE
-$(DEL_FILE) Makefile
-$(DEL_FILE) .qmake.stash
release-mocclean:
$(MAKE) -f $(MAKEFILE).Release mocclean
debug-mocclean:
$(MAKE) -f $(MAKEFILE).Debug mocclean
mocclean: release-mocclean debug-mocclean
release-mocables:
$(MAKE) -f $(MAKEFILE).Release mocables
debug-mocables:
$(MAKE) -f $(MAKEFILE).Debug mocables
mocables: release-mocables debug-mocables
check: first
benchmark: first
FORCE:
.SUFFIXES:
$(MAKEFILE).Release: Makefile
$(MAKEFILE).Debug: Makefile

1173
C++/2.2.6/Makefile.Debug Normal file

File diff suppressed because one or more lines are too long

1173
C++/2.2.6/Makefile.Release Normal file

File diff suppressed because one or more lines are too long

16
C++/2.2.6/app.manifest Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 兼容性 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

3
C++/2.2.6/launcher.rc Normal file
View File

@@ -0,0 +1,3 @@
#include <windows.h>
1 RT_MANIFEST "app.manifest"

39
C++/2.2.6/main.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
#include <QPalette>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置应用程序信息
QApplication::setApplicationName("maimai Launcher");
QApplication::setApplicationVersion("1.0.0");
QApplication::setOrganizationName("GameStudio");
QApplication::setOrganizationDomain("gamestudio.com");
// 设置样式
app.setStyle(QStyleFactory::create("Fusion"));
// 设置默认调色板
QPalette palette;
palette.setColor(QPalette::Window, QColor(240, 240, 240));
palette.setColor(QPalette::WindowText, Qt::black);
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(240, 240, 240));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Text, Qt::black);
palette.setColor(QPalette::Button, QColor(240, 240, 240));
palette.setColor(QPalette::ButtonText, Qt::black);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Highlight, QColor(65, 105, 225));
palette.setColor(QPalette::HighlightedText, Qt::white);
app.setPalette(palette);
MainWindow w;
w.show();
return app.exec();
}

1555
C++/2.2.6/mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

151
C++/2.2.6/mainwindow.h Normal file
View File

@@ -0,0 +1,151 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QTextEdit>
#include <QGroupBox>
#include <QFileDialog>
#include <QSettings>
#include <QDir>
#include <QLineEdit>
#include <QDialog>
#include <QCheckBox>
#include <QTimer>
#include <QMessageBox>
#include <QApplication>
#include <QProcess> // 添加QProcess头文件
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class AuthWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void startGame();
void startOdd();
void modifyHosts();
void forceUpdate();
void openBuyPage();
void fetchAnnouncement();
void onAnnouncementFetched();
void checkForUpdates();
void onVersionChecked();
void updateGame(const QJsonObject &remoteVersion = QJsonObject());
void onUpdateDownloaded(QNetworkReply *reply, const QJsonObject &version);
void selectPackagePath();
void showAuthWindow();
void forceFullUpdate();
void onAuthenticationFinished(const QString &kami, bool remember, bool success, const QString &message, const QString &vipExpiry);
void quitApplication();
void onGameFinished(int exitCode, QProcess::ExitStatus exitStatus); // 添加游戏进程结束信号槽
void checkAndDeleteFiles();
void openWikiPage();
void reportBug(); // 添加报告Bug的槽函数
void checkLauncherVersion(); // 检查启动器版本
private:
void setupUI();
void updateAnnouncement(const QJsonObject &announcement);
void activateButtons();
void disableButtons();
void checkAdminRights();
void saveLocalVersion();
int compareVersions(const QString &v1, const QString &v2);
bool extractZip(const QString &zipPath, const QString &extractDir, const QString &password); // 增加密码参数
void saveSettings();
void loadSettings();
void checkPackageExists();
QString getDeviceId();
QString loadSavedKami();
bool saveKami(const QString &kami);
bool clearSavedKami();
void performNetworkAuthentication(const QString &kami, bool remember);
void loadLocalVersion();
void fetchVersionForForceUpdate();
void startGameProcess(); // 添加游戏启动函数
void fetchFirstUpdateVersion();
void processDeleteList(const QJsonArray &filesToDelete);
QPushButton *wikiBtn;
bool m_isFirstUpdateInProgress;
QPushButton *bugReportBtn; // 添加Bug报告按钮
QPixmap backgroundPixmap;
bool backgroundLoaded = false;
QWidget *pathWidget;
QWidget *contentWidget;
QWidget *leftWidget;
QWidget *buttonWidget;
QGroupBox *rightGroup;
// 配置信息
QString SERVER_URL;
QString UPDATE_PATH;
QString BAT_FILE;
QString ODD_BAT_FILE;
QString HOSTS_BAT;
QString VERSION_FILE;
QString UPDATE_ZIP;
QString ANNOUNCEMENT_FILE;
QString LAUNCHER_VERSION = "";
QString AUTH_API = "";
QString APP_ID = "";
QString DEVICE_CODE_FILE;
QString CARD_FILE;
// UI元素
QLabel *statusLabel;
QLabel *versionLabel;
QLabel *authStatus;
QLabel *vipInfo;
QProgressBar *progressBar;
QTextEdit *announcementText;
QPushButton *startBtn;
QPushButton *oddBtn;
QPushButton *updateBtn;
QPushButton *hostsBtn;
QPushButton *buyBtn;
QPushButton *fullUpdateBtn;
QPushButton *pathSelectBtn;
QLabel *pathLabel;
// 其他成员
QNetworkAccessManager *networkManager;
QJsonObject localVersion;
QSettings *settings;
QString deviceId;
QString savedKami;
bool isAuthenticated = false;
AuthWindow *authWindow = nullptr;
QTimer *quitTimer = nullptr;
bool isFirstLaunch = false;
QProcess *gameProcess; // 添加游戏进程
void fetchBackgroundImage();
};
class AuthWindow : public QDialog
{
Q_OBJECT
public:
explicit AuthWindow(const QString &deviceId, const QString &savedKami, QWidget *parent = nullptr);
QString getKami() const;
bool getRemember() const;
private:
QLineEdit *kamiEntry;
QCheckBox *rememberCheck;
};
#endif // MAINWINDOW_H

31
C++/2.2.6/mainwindow.ui Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

6
C++/2.2.6/resources.qrc Normal file
View File

@@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>styles.qss</file>
<file>untitled2_zh_CN.ts</file>
</qresource>
</RCC>

57
C++/2.2.6/styles.qss Normal file
View File

@@ -0,0 +1,57 @@
QMainWindow {
background-color: #f0f0f0;
font-family: "Microsoft YaHei", Arial, sans-serif;
}
QGroupBox {
border: 1px solid #ccc;
border-radius: 5px;
margin-top: 1ex;
font-weight: bold;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 5px;
}
QTextEdit {
background-color: white;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 10pt;
}
QPushButton {
background-color: #4a86e8;
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
min-height: 30px;
}
QPushButton:hover {
background-color: #3a76d8;
}
QPushButton:disabled {
background-color: #cccccc;
}
QLabel {
font-size: 9pt;
}
QProgressBar {
border: 1px solid #ccc;
border-radius: 3px;
text-align: center;
background-color: #f8f8f8;
}
QProgressBar::chunk {
background-color: #4a86e8;
width: 10px;
}

62
C++/2.2.6/ui_mainwindow.h Normal file
View File

@@ -0,0 +1,62 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 6.9.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName("MainWindow");
MainWindow->resize(800, 600);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName("centralwidget");
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName("menubar");
menubar->setGeometry(QRect(0, 0, 800, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName("statusbar");
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

25
C++/2.2.6/untitled2.pro Normal file
View File

@@ -0,0 +1,25 @@
QT += network concurrent widgets
CONFIG += c++17
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
# 添加资源文件
RESOURCES += resources.qrc
# 添加版本信息
VERSION = 2.2.6
win32 {
# 链接必要的 Windows
LIBS += -ladvapi32 -luser32 -lshell32 -lkernel32
# 生成资源文件
RC_FILE = launcher.rc
}

View File

@@ -0,0 +1,374 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-06T01:16:13. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{b6372d5e-b2b2-4287-9da7-f348cf5f8064}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/game/舞萌文件/新建文件夹/C++/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="RunSystemFunction">1</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug (imported)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN"></TS>

596
C++/2.2.8/Makefile Normal file
View File

@@ -0,0 +1,596 @@
#############################################################################
# Makefile for building: untitled2
# Generated by qmake (3.1) (Qt 6.9.1)
# Project: untitled2.pro
# Template: app
# Command: D:\Qt\6.9.1\mingw_64\bin\qmake.exe -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
#############################################################################
MAKEFILE = Makefile
EQ = =
first: release
install: release-install
uninstall: release-uninstall
QMAKE = D:\Qt\6.9.1\mingw_64\bin\qmake.exe
DEL_FILE = del
CHK_DIR_EXISTS= if not exist
MKDIR = mkdir
COPY = copy /y
COPY_FILE = copy /y
COPY_DIR = xcopy /s /q /y /i
INSTALL_FILE = copy /y
INSTALL_PROGRAM = copy /y
INSTALL_DIR = xcopy /s /q /y /i
QINSTALL = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall -exe
DEL_FILE = del
SYMLINK = $(QMAKE) -install ln -f -s
DEL_DIR = rmdir
MOVE = move
IDC = idc
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE = launcher_res.o
SED = $(QMAKE) -install sed
MOVE = move
SUBTARGETS = \
release \
debug
release: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-all: FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall
debug: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-all: FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
Makefile: untitled2.pro D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf \
.qmake.stash \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf \
untitled2.pro \
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl \
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf \
resources.qrc
$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf:
.qmake.stash:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf:
untitled2.pro:
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl:
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf:
resources.qrc:
qmake: FORCE
@$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
qmake_all: FORCE
make_first: release-make_first debug-make_first FORCE
all: release-all debug-all FORCE
clean: release-clean debug-clean FORCE
distclean: release-distclean debug-distclean FORCE
-$(DEL_FILE) Makefile
-$(DEL_FILE) .qmake.stash
release-mocclean:
$(MAKE) -f $(MAKEFILE).Release mocclean
debug-mocclean:
$(MAKE) -f $(MAKEFILE).Debug mocclean
mocclean: release-mocclean debug-mocclean
release-mocables:
$(MAKE) -f $(MAKEFILE).Release mocables
debug-mocables:
$(MAKE) -f $(MAKEFILE).Debug mocables
mocables: release-mocables debug-mocables
check: first
benchmark: first
FORCE:
.SUFFIXES:
$(MAKEFILE).Release: Makefile
$(MAKEFILE).Debug: Makefile

1173
C++/2.2.8/Makefile.Debug Normal file

File diff suppressed because one or more lines are too long

1173
C++/2.2.8/Makefile.Release Normal file

File diff suppressed because one or more lines are too long

16
C++/2.2.8/app.manifest Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 兼容性 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

3
C++/2.2.8/launcher.rc Normal file
View File

@@ -0,0 +1,3 @@
#include <windows.h>
1 RT_MANIFEST "app.manifest"

39
C++/2.2.8/main.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
#include <QPalette>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置应用程序信息
QApplication::setApplicationName("maimai Launcher");
QApplication::setApplicationVersion("1.0.0");
QApplication::setOrganizationName("GameStudio");
QApplication::setOrganizationDomain("gamestudio.com");
// 设置样式
app.setStyle(QStyleFactory::create("Fusion"));
// 设置默认调色板
QPalette palette;
palette.setColor(QPalette::Window, QColor(240, 240, 240));
palette.setColor(QPalette::WindowText, Qt::black);
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(240, 240, 240));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Text, Qt::black);
palette.setColor(QPalette::Button, QColor(240, 240, 240));
palette.setColor(QPalette::ButtonText, Qt::black);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Highlight, QColor(65, 105, 225));
palette.setColor(QPalette::HighlightedText, Qt::white);
app.setPalette(palette);
MainWindow w;
w.show();
return app.exec();
}

1550
C++/2.2.8/mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

151
C++/2.2.8/mainwindow.h Normal file
View File

@@ -0,0 +1,151 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QTextEdit>
#include <QGroupBox>
#include <QFileDialog>
#include <QSettings>
#include <QDir>
#include <QLineEdit>
#include <QDialog>
#include <QCheckBox>
#include <QTimer>
#include <QMessageBox>
#include <QApplication>
#include <QProcess> // 添加QProcess头文件
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class AuthWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void startGame();
void startOdd();
void modifyHosts();
void forceUpdate();
void openBuyPage();
void fetchAnnouncement();
void onAnnouncementFetched();
void checkForUpdates();
void onVersionChecked();
void updateGame(const QJsonObject &remoteVersion = QJsonObject());
void onUpdateDownloaded(QNetworkReply *reply, const QJsonObject &version);
void selectPackagePath();
void showAuthWindow();
void forceFullUpdate();
void onAuthenticationFinished(const QString &kami, bool remember, bool success, const QString &message, const QString &vipExpiry);
void quitApplication();
void onGameFinished(int exitCode, QProcess::ExitStatus exitStatus); // 添加游戏进程结束信号槽
void checkAndDeleteFiles();
void openWikiPage();
void reportBug(); // 添加报告Bug的槽函数
void checkLauncherVersion(); // 检查启动器版本
private:
void setupUI();
void updateAnnouncement(const QJsonObject &announcement);
void activateButtons();
void disableButtons();
void checkAdminRights();
void saveLocalVersion();
int compareVersions(const QString &v1, const QString &v2);
bool extractZip(const QString &zipPath, const QString &extractDir, const QString &password); // 增加密码参数
void saveSettings();
void loadSettings();
void checkPackageExists();
QString getDeviceId();
QString loadSavedKami();
bool saveKami(const QString &kami);
bool clearSavedKami();
void performNetworkAuthentication(const QString &kami, bool remember);
void loadLocalVersion();
void fetchVersionForForceUpdate();
void startGameProcess(); // 添加游戏启动函数
void fetchFirstUpdateVersion();
void processDeleteList(const QJsonArray &filesToDelete);
QPushButton *wikiBtn;
bool m_isFirstUpdateInProgress;
QPushButton *bugReportBtn; // 添加Bug报告按钮
QPixmap backgroundPixmap;
bool backgroundLoaded = false;
QWidget *pathWidget;
QWidget *contentWidget;
QWidget *leftWidget;
QWidget *buttonWidget;
QGroupBox *rightGroup;
// 配置信息
QString SERVER_URL;
QString UPDATE_PATH;
QString BAT_FILE;
QString ODD_BAT_FILE;
QString HOSTS_BAT;
QString VERSION_FILE;
QString UPDATE_ZIP;
QString ANNOUNCEMENT_FILE;
QString LAUNCHER_VERSION = ""; // 更新版本号
QString AUTH_API = "";
QString APP_ID = "";
QString DEVICE_CODE_FILE;
QString CARD_FILE;
// UI元素
QLabel *statusLabel;
QLabel *versionLabel;
QLabel *authStatus;
QLabel *vipInfo;
QProgressBar *progressBar;
QTextEdit *announcementText;
QPushButton *startBtn;
QPushButton *oddBtn;
QPushButton *updateBtn;
QPushButton *hostsBtn;
QPushButton *buyBtn;
QPushButton *fullUpdateBtn;
QPushButton *pathSelectBtn;
QLabel *pathLabel;
// 其他成员
QNetworkAccessManager *networkManager;
QJsonObject localVersion;
QSettings *settings;
QString deviceId;
QString savedKami;
bool isAuthenticated = false;
AuthWindow *authWindow = nullptr;
QTimer *quitTimer = nullptr;
bool isFirstLaunch = false;
QProcess *gameProcess; // 添加游戏进程
void fetchBackgroundImage();
};
class AuthWindow : public QDialog
{
Q_OBJECT
public:
explicit AuthWindow(const QString &deviceId, const QString &savedKami, QWidget *parent = nullptr);
QString getKami() const;
bool getRemember() const;
private:
QLineEdit *kamiEntry;
QCheckBox *rememberCheck;
};
#endif // MAINWINDOW_H

31
C++/2.2.8/mainwindow.ui Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

6
C++/2.2.8/resources.qrc Normal file
View File

@@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>styles.qss</file>
<file>untitled2_zh_CN.ts</file>
</qresource>
</RCC>

57
C++/2.2.8/styles.qss Normal file
View File

@@ -0,0 +1,57 @@
QMainWindow {
background-color: #f0f0f0;
font-family: "Microsoft YaHei", Arial, sans-serif;
}
QGroupBox {
border: 1px solid #ccc;
border-radius: 5px;
margin-top: 1ex;
font-weight: bold;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 5px;
}
QTextEdit {
background-color: white;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 10pt;
}
QPushButton {
background-color: #4a86e8;
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
min-height: 30px;
}
QPushButton:hover {
background-color: #3a76d8;
}
QPushButton:disabled {
background-color: #cccccc;
}
QLabel {
font-size: 9pt;
}
QProgressBar {
border: 1px solid #ccc;
border-radius: 3px;
text-align: center;
background-color: #f8f8f8;
}
QProgressBar::chunk {
background-color: #4a86e8;
width: 10px;
}

62
C++/2.2.8/ui_mainwindow.h Normal file
View File

@@ -0,0 +1,62 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 6.9.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName("MainWindow");
MainWindow->resize(800, 600);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName("centralwidget");
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName("menubar");
menubar->setGeometry(QRect(0, 0, 800, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName("statusbar");
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

28
C++/2.2.8/untitled2.pro Normal file
View File

@@ -0,0 +1,28 @@
QT += network concurrent widgets
CONFIG += c++17
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
# 添加资源文件
RESOURCES += resources.qrc
# 添加版本信息
VERSION = 2.2.8
win32 {
# 链接必要的 Windows
LIBS += -ladvapi32 -luser32 -lshell32 -lkernel32
DEPLOYMENT += 7z
7z.path = $$OUT_PWD
7z.files = $$PWD/7z/*
INSTALLS += 7z
# 生成资源文件
RC_FILE = launcher.rc
}

View File

@@ -0,0 +1,374 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-06T10:41:36. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{b6372d5e-b2b2-4287-9da7-f348cf5f8064}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/game/舞萌文件/新建文件夹/C++/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="RunSystemFunction">1</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug (imported)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN"></TS>

596
C++/2.3.0/Makefile Normal file
View File

@@ -0,0 +1,596 @@
#############################################################################
# Makefile for building: untitled2
# Generated by qmake (3.1) (Qt 6.9.1)
# Project: untitled2.pro
# Template: app
# Command: D:\Qt\6.9.1\mingw_64\bin\qmake.exe -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
#############################################################################
MAKEFILE = Makefile
EQ = =
first: release
install: release-install
uninstall: release-uninstall
QMAKE = D:\Qt\6.9.1\mingw_64\bin\qmake.exe
DEL_FILE = del
CHK_DIR_EXISTS= if not exist
MKDIR = mkdir
COPY = copy /y
COPY_FILE = copy /y
COPY_DIR = xcopy /s /q /y /i
INSTALL_FILE = copy /y
INSTALL_PROGRAM = copy /y
INSTALL_DIR = xcopy /s /q /y /i
QINSTALL = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall -exe
DEL_FILE = del
SYMLINK = $(QMAKE) -install ln -f -s
DEL_DIR = rmdir
MOVE = move
IDC = idc
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE = launcher_res.o
SED = $(QMAKE) -install sed
MOVE = move
SUBTARGETS = \
release \
debug
release: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-all: FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall
debug: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-all: FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
Makefile: untitled2.pro D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf \
.qmake.stash \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf \
untitled2.pro \
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl \
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf \
resources.qrc
$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf:
.qmake.stash:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf:
untitled2.pro:
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl:
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf:
resources.qrc:
qmake: FORCE
@$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
qmake_all: FORCE
make_first: release-make_first debug-make_first FORCE
all: release-all debug-all FORCE
clean: release-clean debug-clean FORCE
distclean: release-distclean debug-distclean FORCE
-$(DEL_FILE) Makefile
-$(DEL_FILE) .qmake.stash
release-mocclean:
$(MAKE) -f $(MAKEFILE).Release mocclean
debug-mocclean:
$(MAKE) -f $(MAKEFILE).Debug mocclean
mocclean: release-mocclean debug-mocclean
release-mocables:
$(MAKE) -f $(MAKEFILE).Release mocables
debug-mocables:
$(MAKE) -f $(MAKEFILE).Debug mocables
mocables: release-mocables debug-mocables
check: first
benchmark: first
FORCE:
.SUFFIXES:
$(MAKEFILE).Release: Makefile
$(MAKEFILE).Debug: Makefile

1173
C++/2.3.0/Makefile.Debug Normal file

File diff suppressed because one or more lines are too long

1173
C++/2.3.0/Makefile.Release Normal file

File diff suppressed because one or more lines are too long

16
C++/2.3.0/app.manifest Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 兼容性 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

3
C++/2.3.0/launcher.rc Normal file
View File

@@ -0,0 +1,3 @@
#include <windows.h>
1 RT_MANIFEST "app.manifest"

39
C++/2.3.0/main.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
#include <QPalette>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置应用程序信息
QApplication::setApplicationName("maimai Launcher");
QApplication::setApplicationVersion("1.0.0");
QApplication::setOrganizationName("GameStudio");
QApplication::setOrganizationDomain("gamestudio.com");
// 设置样式
app.setStyle(QStyleFactory::create("Fusion"));
// 设置默认调色板
QPalette palette;
palette.setColor(QPalette::Window, QColor(240, 240, 240));
palette.setColor(QPalette::WindowText, Qt::black);
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(240, 240, 240));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Text, Qt::black);
palette.setColor(QPalette::Button, QColor(240, 240, 240));
palette.setColor(QPalette::ButtonText, Qt::black);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Highlight, QColor(65, 105, 225));
palette.setColor(QPalette::HighlightedText, Qt::white);
app.setPalette(palette);
MainWindow w;
w.show();
return app.exec();
}

1877
C++/2.3.0/mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

166
C++/2.3.0/mainwindow.h Normal file
View File

@@ -0,0 +1,166 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QTextEdit>
#include <QGroupBox>
#include <QFileDialog>
#include <QSettings>
#include <QDir>
#include <QLineEdit>
#include <QDialog>
#include <QCheckBox>
#include <QTimer>
#include <QMessageBox>
#include <QApplication>
#include <QProcess> // 添加QProcess头文件
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class AuthWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void startGame();
void startOdd();
void modifyHosts();
void forceUpdate();
void openBuyPage();
void fetchAnnouncement();
void onAnnouncementFetched();
void checkForUpdates();
void onVersionChecked();
void updateGame(const QJsonObject &remoteVersion = QJsonObject());
void onUpdateDownloaded(QNetworkReply *reply, const QJsonObject &version);
void selectPackagePath();
void showAuthWindow();
void forceFullUpdate();
void onAuthenticationFinished(const QString &kami, bool remember, bool success, const QString &message, const QString &vipExpiry);
void quitApplication();
void onGameFinished(int exitCode, QProcess::ExitStatus exitStatus); // 添加游戏进程结束信号槽
void checkAndDeleteFiles();
void openWikiPage();
void reportBug(); // 添加报告Bug的槽函数
void checkLauncherVersion(); // 检查启动器版本
void openSettings(); // 新增设置功能
private:
void setupUI();
void updateAnnouncement(const QJsonObject &announcement);
void activateButtons();
void disableButtons();
void checkAdminRights();
void saveLocalVersion();
int compareVersions(const QString &v1, const QString &v2);
bool extractZip(const QString &zipPath, const QString &extractDir, const QString &password); // 增加密码参数
void saveSettings();
void loadSettings();
void checkPackageExists();
QString getDeviceId();
QString loadSavedKami();
bool saveKami(const QString &kami);
bool clearSavedKami();
void performNetworkAuthentication(const QString &kami, bool remember);
void loadLocalVersion();
void fetchVersionForForceUpdate();
void startGameProcess(); // 添加游戏启动函数
void fetchFirstUpdateVersion();
void processDeleteList(const QJsonArray &filesToDelete);
QPushButton *wikiBtn;
bool m_isFirstUpdateInProgress;
QPushButton *bugReportBtn; // 添加Bug报告按钮
QPixmap backgroundPixmap;
bool backgroundLoaded = false;
QWidget *pathWidget;
QWidget *contentWidget;
QWidget *leftWidget;
QWidget *buttonWidget;
QGroupBox *rightGroup;
QPushButton *settingsBtn; // 新增设置按钮
void saveNodeSettings(const QString &nodeId); // 新增节点设置保存
void loadNodeSettings(); // 新增节点设置加载
void updateServerUrl(); // 更新服务器URL
void startPingTests();
void pingNode(const QString& url, const QString& nodeId);
void updatePingResult(const QString& nodeId, int latency);
QMap<QString, QNetworkReply*> pingReplies; // 存储每个节点的网络请求
void checkExtractorAvailability();
// 配置信息
QString SERVER_URL;
QString UPDATE_PATH;
QString BAT_FILE;
QString ODD_BAT_FILE;
QString HOSTS_BAT;
QString VERSION_FILE;
QString UPDATE_ZIP;
QString ANNOUNCEMENT_FILE;
QString LAUNCHER_VERSION = "2.3.0"; // 更新版本号
QString AUTH_API = "";
QString APP_ID = "";
QString DEVICE_CODE_FILE;
QString CARD_FILE;
// UI元素
QLabel *statusLabel;
QLabel *versionLabel;
QLabel *authStatus;
QLabel *vipInfo;
QProgressBar *progressBar;
QTextEdit *announcementText;
QPushButton *startBtn;
QPushButton *oddBtn;
QPushButton *updateBtn;
QPushButton *hostsBtn;
QPushButton *buyBtn;
QPushButton *fullUpdateBtn;
QPushButton *pathSelectBtn;
QLabel *pathLabel;
// 其他成员
QNetworkAccessManager *networkManager;
QJsonObject localVersion;
QSettings *settings;
QString deviceId;
QString savedKami;
bool isAuthenticated = false;
AuthWindow *authWindow = nullptr;
QTimer *quitTimer = nullptr;
bool isFirstLaunch = false;
QProcess *gameProcess; // 添加游戏进程
void fetchBackgroundImage();
QString m_currentNode; // 当前选择的节点ID
QMap<QString, QString> nodeMap; // 节点ID到URL的映射
QString testNodePassword; // 测试节点密码
QMap<QString, QLabel*> pingLabels; // 存储节点ID到标签的映射
QMap<QString, QString> nodeHostMap; // 存储节点ID到主机名的映射
};
class AuthWindow : public QDialog
{
Q_OBJECT
public:
explicit AuthWindow(const QString &deviceId, const QString &savedKami, QWidget *parent = nullptr);
QString getKami() const;
bool getRemember() const;
private:
QLineEdit *kamiEntry;
QCheckBox *rememberCheck;
};
#endif // MAINWINDOW_H

31
C++/2.3.0/mainwindow.ui Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

6
C++/2.3.0/resources.qrc Normal file
View File

@@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>styles.qss</file>
<file>untitled2_zh_CN.ts</file>
</qresource>
</RCC>

57
C++/2.3.0/styles.qss Normal file
View File

@@ -0,0 +1,57 @@
QMainWindow {
background-color: #f0f0f0;
font-family: "Microsoft YaHei", Arial, sans-serif;
}
QGroupBox {
border: 1px solid #ccc;
border-radius: 5px;
margin-top: 1ex;
font-weight: bold;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 5px;
}
QTextEdit {
background-color: white;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 10pt;
}
QPushButton {
background-color: #4a86e8;
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
min-height: 30px;
}
QPushButton:hover {
background-color: #3a76d8;
}
QPushButton:disabled {
background-color: #cccccc;
}
QLabel {
font-size: 9pt;
}
QProgressBar {
border: 1px solid #ccc;
border-radius: 3px;
text-align: center;
background-color: #f8f8f8;
}
QProgressBar::chunk {
background-color: #4a86e8;
width: 10px;
}

62
C++/2.3.0/ui_mainwindow.h Normal file
View File

@@ -0,0 +1,62 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 6.9.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName("MainWindow");
MainWindow->resize(800, 600);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName("centralwidget");
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName("menubar");
menubar->setGeometry(QRect(0, 0, 800, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName("statusbar");
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

28
C++/2.3.0/untitled2.pro Normal file
View File

@@ -0,0 +1,28 @@
QT += network concurrent widgets
CONFIG += c++17
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
# 添加资源文件
RESOURCES += resources.qrc
# 添加版本信息
VERSION = 2.3.0
win32 {
# 链接必要的 Windows
LIBS += -ladvapi32 -luser32 -lshell32 -lkernel32
DEPLOYMENT += 7z
7z.path = $$OUT_PWD
7z.files = $$PWD/7z/*
INSTALLS += 7z
# 生成资源文件
RC_FILE = launcher.rc
}

View File

@@ -0,0 +1,374 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-06T15:27:00. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{b6372d5e-b2b2-4287-9da7-f348cf5f8064}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/game/舞萌文件/新建文件夹/C++/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="RunSystemFunction">1</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug (imported)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN"></TS>

596
C++/2.3.1/Makefile Normal file
View File

@@ -0,0 +1,596 @@
#############################################################################
# Makefile for building: untitled2
# Generated by qmake (3.1) (Qt 6.9.1)
# Project: untitled2.pro
# Template: app
# Command: D:\Qt\6.9.1\mingw_64\bin\qmake.exe -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
#############################################################################
MAKEFILE = Makefile
EQ = =
first: release
install: release-install
uninstall: release-uninstall
QMAKE = D:\Qt\6.9.1\mingw_64\bin\qmake.exe
DEL_FILE = del
CHK_DIR_EXISTS= if not exist
MKDIR = mkdir
COPY = copy /y
COPY_FILE = copy /y
COPY_DIR = xcopy /s /q /y /i
INSTALL_FILE = copy /y
INSTALL_PROGRAM = copy /y
INSTALL_DIR = xcopy /s /q /y /i
QINSTALL = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = D:\Qt\6.9.1\mingw_64\bin\qmake.exe -install qinstall -exe
DEL_FILE = del
SYMLINK = $(QMAKE) -install ln -f -s
DEL_DIR = rmdir
MOVE = move
IDC = idc
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE = launcher_res.o
SED = $(QMAKE) -install sed
MOVE = move
SUBTARGETS = \
release \
debug
release: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Release
release-all: FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall
debug: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-all: FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
Makefile: untitled2.pro D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf \
.qmake.stash \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf \
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf \
untitled2.pro \
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl \
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl \
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf \
resources.qrc
$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/device_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/sanitize.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/gcc-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-base.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows_vulkan_sdk.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-vulkan.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/g++-win32.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/common/windows-desktop.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/qconfig.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_freetype.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libjpeg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_libpng.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_ext_openxr_loader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_charts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_chartsqml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_concurrent_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_core_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_dbus_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designer_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_designercomponents_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_entrypoint_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_example_icons_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_examples_asset_downloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_fb_support_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_freetype_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_gui_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_harfbuzz_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_help_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_jpeg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsanimation_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsfolderlistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsplatform_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labsqmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labssharedimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_labswavefrontmesh_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_linguist.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimedia_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediaquick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediatestlibprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_network_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_opengl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_openglwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_packetprotocol_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_png_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_printsupport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatch_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchconversions_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qdoccatchgenerators_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlassetdownloader_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcompiler_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlcore_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldebug_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmldom_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlformat_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlintegration_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmllocalstorage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlls_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmeta_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlmodels_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlnetwork_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltest_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltoolingsettings_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmltyperegistrar_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_qmlxmllistmodel_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3d_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dassetutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3deffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dglslparser_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpers_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dhelpersimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3diblbaker_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dspatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dutils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick3dxr_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quick_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basic_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusion_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imagine_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2impl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2material_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universal_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrols2windowsstyleimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickcontrolstestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2quickimpl_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickdialogs2utils_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickeffects_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicklayouts_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickparticles_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickshapes_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktestutilsprivate_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimeline_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quicktimelineblendtrees_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimage_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickvectorimagegenerator_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_quickwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_shadertools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_spatialaudio_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_sql_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svg_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_svgwidgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testinternals_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_testlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_tools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uiplugin.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_uitools_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_widgets_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_xml_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/modules/qt_lib_zlib_private.pri:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/win32-g++/qmake.conf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/spec_post.prf:
.qmake.stash:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/toolchain.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/default_pre.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resolve_config.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exclusive_builds_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/default_post.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qtquickcompiler.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/precompile_header.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/warn_on.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/permissions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qt.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources_functions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/resources.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/moc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/opengl.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/uic.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/qmake_use.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/file_copies.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/win32/windows.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/testcase_targets.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/exceptions.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/yacc.prf:
D:/Qt/6.9.1/mingw_64/mkspecs/features/lex.prf:
untitled2.pro:
D:/Qt/6.9.1/mingw_64/lib/Qt6Widgets.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Gui.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Network.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Concurrent.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6Core.prl:
D:/Qt/6.9.1/mingw_64/lib/Qt6EntryPoint.prl:
D:/Qt/6.9.1/mingw_64/mkspecs/features/build_pass.prf:
resources.qrc:
qmake: FORCE
@$(QMAKE) -o Makefile untitled2.pro -spec win32-g++ "CONFIG+=qtquickcompiler"
qmake_all: FORCE
make_first: release-make_first debug-make_first FORCE
all: release-all debug-all FORCE
clean: release-clean debug-clean FORCE
distclean: release-distclean debug-distclean FORCE
-$(DEL_FILE) Makefile
-$(DEL_FILE) .qmake.stash
release-mocclean:
$(MAKE) -f $(MAKEFILE).Release mocclean
debug-mocclean:
$(MAKE) -f $(MAKEFILE).Debug mocclean
mocclean: release-mocclean debug-mocclean
release-mocables:
$(MAKE) -f $(MAKEFILE).Release mocables
debug-mocables:
$(MAKE) -f $(MAKEFILE).Debug mocables
mocables: release-mocables debug-mocables
check: first
benchmark: first
FORCE:
.SUFFIXES:
$(MAKEFILE).Release: Makefile
$(MAKEFILE).Debug: Makefile

1173
C++/2.3.1/Makefile.Debug Normal file

File diff suppressed because one or more lines are too long

1173
C++/2.3.1/Makefile.Release Normal file

File diff suppressed because one or more lines are too long

16
C++/2.3.1/app.manifest Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 兼容性 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

3
C++/2.3.1/launcher.rc Normal file
View File

@@ -0,0 +1,3 @@
#include <windows.h>
1 RT_MANIFEST "app.manifest"

39
C++/2.3.1/main.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
#include <QPalette>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置应用程序信息
QApplication::setApplicationName("maimai Launcher");
QApplication::setApplicationVersion("1.0.0");
QApplication::setOrganizationName("GameStudio");
QApplication::setOrganizationDomain("gamestudio.com");
// 设置样式
app.setStyle(QStyleFactory::create("Fusion"));
// 设置默认调色板
QPalette palette;
palette.setColor(QPalette::Window, QColor(240, 240, 240));
palette.setColor(QPalette::WindowText, Qt::black);
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(240, 240, 240));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Text, Qt::black);
palette.setColor(QPalette::Button, QColor(240, 240, 240));
palette.setColor(QPalette::ButtonText, Qt::black);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Highlight, QColor(65, 105, 225));
palette.setColor(QPalette::HighlightedText, Qt::white);
app.setPalette(palette);
MainWindow w;
w.show();
return app.exec();
}

1877
C++/2.3.1/mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

166
C++/2.3.1/mainwindow.h Normal file
View File

@@ -0,0 +1,166 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QTextEdit>
#include <QGroupBox>
#include <QFileDialog>
#include <QSettings>
#include <QDir>
#include <QLineEdit>
#include <QDialog>
#include <QCheckBox>
#include <QTimer>
#include <QMessageBox>
#include <QApplication>
#include <QProcess> // 添加QProcess头文件
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class AuthWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void startGame();
void startOdd();
void modifyHosts();
void forceUpdate();
void openBuyPage();
void fetchAnnouncement();
void onAnnouncementFetched();
void checkForUpdates();
void onVersionChecked();
void updateGame(const QJsonObject &remoteVersion = QJsonObject());
void onUpdateDownloaded(QNetworkReply *reply, const QJsonObject &version);
void selectPackagePath();
void showAuthWindow();
void forceFullUpdate();
void onAuthenticationFinished(const QString &kami, bool remember, bool success, const QString &message, const QString &vipExpiry);
void quitApplication();
void onGameFinished(int exitCode, QProcess::ExitStatus exitStatus); // 添加游戏进程结束信号槽
void checkAndDeleteFiles();
void openWikiPage();
void reportBug(); // 添加报告Bug的槽函数
void checkLauncherVersion(); // 检查启动器版本
void openSettings(); // 新增设置功能
private:
void setupUI();
void updateAnnouncement(const QJsonObject &announcement);
void activateButtons();
void disableButtons();
void checkAdminRights();
void saveLocalVersion();
int compareVersions(const QString &v1, const QString &v2);
bool extractZip(const QString &zipPath, const QString &extractDir, const QString &password); // 增加密码参数
void saveSettings();
void loadSettings();
void checkPackageExists();
QString getDeviceId();
QString loadSavedKami();
bool saveKami(const QString &kami);
bool clearSavedKami();
void performNetworkAuthentication(const QString &kami, bool remember);
void loadLocalVersion();
void fetchVersionForForceUpdate();
void startGameProcess(); // 添加游戏启动函数
void fetchFirstUpdateVersion();
void processDeleteList(const QJsonArray &filesToDelete);
QPushButton *wikiBtn;
bool m_isFirstUpdateInProgress;
QPushButton *bugReportBtn; // 添加Bug报告按钮
QPixmap backgroundPixmap;
bool backgroundLoaded = false;
QWidget *pathWidget;
QWidget *contentWidget;
QWidget *leftWidget;
QWidget *buttonWidget;
QGroupBox *rightGroup;
QPushButton *settingsBtn; // 新增设置按钮
void saveNodeSettings(const QString &nodeId); // 新增节点设置保存
void loadNodeSettings(); // 新增节点设置加载
void updateServerUrl(); // 更新服务器URL
void startPingTests();
void pingNode(const QString& url, const QString& nodeId);
void updatePingResult(const QString& nodeId, int latency);
QMap<QString, QNetworkReply*> pingReplies; // 存储每个节点的网络请求
void checkExtractorAvailability();
// 配置信息
QString SERVER_URL;
QString UPDATE_PATH;
QString BAT_FILE;
QString ODD_BAT_FILE;
QString HOSTS_BAT;
QString VERSION_FILE;
QString UPDATE_ZIP;
QString ANNOUNCEMENT_FILE;
QString LAUNCHER_VERSION = "";
QString AUTH_API = "";
QString APP_ID = "";
QString DEVICE_CODE_FILE;
QString CARD_FILE;
// UI元素
QLabel *statusLabel;
QLabel *versionLabel;
QLabel *authStatus;
QLabel *vipInfo;
QProgressBar *progressBar;
QTextEdit *announcementText;
QPushButton *startBtn;
QPushButton *oddBtn;
QPushButton *updateBtn;
QPushButton *hostsBtn;
QPushButton *buyBtn;
QPushButton *fullUpdateBtn;
QPushButton *pathSelectBtn;
QLabel *pathLabel;
// 其他成员
QNetworkAccessManager *networkManager;
QJsonObject localVersion;
QSettings *settings;
QString deviceId;
QString savedKami;
bool isAuthenticated = false;
AuthWindow *authWindow = nullptr;
QTimer *quitTimer = nullptr;
bool isFirstLaunch = false;
QProcess *gameProcess; // 添加游戏进程
void fetchBackgroundImage();
QString m_currentNode; // 当前选择的节点ID
QMap<QString, QString> nodeMap; // 节点ID到URL的映射
QString testNodePassword; // 测试节点密码
QMap<QString, QLabel*> pingLabels; // 存储节点ID到标签的映射
QMap<QString, QString> nodeHostMap; // 存储节点ID到主机名的映射
};
class AuthWindow : public QDialog
{
Q_OBJECT
public:
explicit AuthWindow(const QString &deviceId, const QString &savedKami, QWidget *parent = nullptr);
QString getKami() const;
bool getRemember() const;
private:
QLineEdit *kamiEntry;
QCheckBox *rememberCheck;
};
#endif // MAINWINDOW_H

31
C++/2.3.1/mainwindow.ui Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

6
C++/2.3.1/resources.qrc Normal file
View File

@@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>styles.qss</file>
<file>untitled2_zh_CN.ts</file>
</qresource>
</RCC>

57
C++/2.3.1/styles.qss Normal file
View File

@@ -0,0 +1,57 @@
QMainWindow {
background-color: #f0f0f0;
font-family: "Microsoft YaHei", Arial, sans-serif;
}
QGroupBox {
border: 1px solid #ccc;
border-radius: 5px;
margin-top: 1ex;
font-weight: bold;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 5px;
}
QTextEdit {
background-color: white;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 10pt;
}
QPushButton {
background-color: #4a86e8;
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
min-height: 30px;
}
QPushButton:hover {
background-color: #3a76d8;
}
QPushButton:disabled {
background-color: #cccccc;
}
QLabel {
font-size: 9pt;
}
QProgressBar {
border: 1px solid #ccc;
border-radius: 3px;
text-align: center;
background-color: #f8f8f8;
}
QProgressBar::chunk {
background-color: #4a86e8;
width: 10px;
}

62
C++/2.3.1/ui_mainwindow.h Normal file
View File

@@ -0,0 +1,62 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 6.9.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName("MainWindow");
MainWindow->resize(800, 600);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName("centralwidget");
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName("menubar");
menubar->setGeometry(QRect(0, 0, 800, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName("statusbar");
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

28
C++/2.3.1/untitled2.pro Normal file
View File

@@ -0,0 +1,28 @@
QT += network concurrent widgets
CONFIG += c++17
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
# 添加资源文件
RESOURCES += resources.qrc
# 添加版本信息
VERSION = 2.3.0
win32 {
# 链接必要的 Windows
LIBS += -ladvapi32 -luser32 -lshell32 -lkernel32
DEPLOYMENT += 7z
7z.path = $$OUT_PWD
7z.files = $$PWD/7z/*
INSTALLS += 7z
# 生成资源文件
RC_FILE = launcher.rc
}

View File

@@ -0,0 +1,225 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-27T13:52:48. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{bb82079d-ca6d-4491-86bb-9e475d60c26a}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.3.1\untitled2\build\Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/2.3.1/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,410 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-09T13:26:36. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{b6372d5e-b2b2-4287-9da7-f348cf5f8064}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.3.1\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled23</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="RunSystemFunction">1</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug (imported)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled23</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN"></TS>

16
C++/2.4.0/app.manifest Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 兼容性 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

3
C++/2.4.0/launcher.rc Normal file
View File

@@ -0,0 +1,3 @@
#include <windows.h>
1 RT_MANIFEST "app.manifest"

39
C++/2.4.0/main.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
#include <QPalette>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置应用程序信息
QApplication::setApplicationName("maimai Launcher");
QApplication::setApplicationVersion("1.0.0");
QApplication::setOrganizationName("GameStudio");
QApplication::setOrganizationDomain("gamestudio.com");
// 设置样式
app.setStyle(QStyleFactory::create("Fusion"));
// 设置默认调色板
QPalette palette;
palette.setColor(QPalette::Window, QColor(240, 240, 240));
palette.setColor(QPalette::WindowText, Qt::black);
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(240, 240, 240));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Text, Qt::black);
palette.setColor(QPalette::Button, QColor(240, 240, 240));
palette.setColor(QPalette::ButtonText, Qt::black);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Highlight, QColor(65, 105, 225));
palette.setColor(QPalette::HighlightedText, Qt::white);
app.setPalette(palette);
MainWindow w;
w.show();
return app.exec();
}

1994
C++/2.4.0/mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

164
C++/2.4.0/mainwindow.h Normal file
View File

@@ -0,0 +1,164 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QTextEdit>
#include <QGroupBox>
#include <QFileDialog>
#include <QSettings>
#include <QDir>
#include <QLineEdit>
#include <QDialog>
#include <QCheckBox>
#include <QTimer>
#include <QMessageBox>
#include <QApplication>
#include <QProcess>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSslConfiguration> // 添加SSL配置支持
#include <QSslCertificate> // 添加SSL证书支持
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class AuthWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void startGame();
void startOdd();
void modifyHosts();
void forceUpdate();
void openBuyPage();
void fetchAnnouncement();
void onAnnouncementFetched();
void checkForUpdates();
void onVersionChecked();
void updateGame(const QJsonObject &remoteVersion = QJsonObject());
void onUpdateDownloaded(QNetworkReply *reply, const QJsonObject &version);
void selectPackagePath();
void showAuthWindow();
void forceFullUpdate();
void onAuthenticationFinished(const QString &kami, bool remember, bool success, const QString &message, const QString &vipExpiry);
void quitApplication();
void onGameFinished(int exitCode, QProcess::ExitStatus exitStatus);
void checkAndDeleteFiles();
void openWikiPage();
void reportBug();
void checkLauncherVersion();
private:
bool validateResponseDomain(const QUrl &url);
void setupSslConfiguration(); // 配置SSL
bool checkQQNumber(); // 检查QQ号是否在数据库中
QStringList getQQNumbersFromQQNT(); // 从QQNT目录获取所有可能的QQ号
void killAllCmdProcesses();
void checkGameProcess();
void setFolderPermissions(const QString &folderPath);
void setupUI();
void updateAnnouncement(const QJsonObject &announcement);
void activateButtons();
void disableButtons();
void checkAdminRights();
void saveLocalVersion();
int compareVersions(const QString &v1, const QString &v2);
bool extractZip(const QString &zipPath, const QString &extractDir, const QString &password);
void saveSettings();
void loadSettings();
void checkPackageExists();
QString getDeviceId();
QString loadSavedKami();
bool saveKami(const QString &kami);
bool clearSavedKami();
void performNetworkAuthentication(const QString &kami, bool remember);
void loadLocalVersion();
void fetchVersionForForceUpdate();
void startGameProcess();
void fetchFirstUpdateVersion();
void processDeleteList(const QJsonArray &filesToDelete);
bool connectToDatabase(); // 添加数据库连接函数声明
QPushButton *wikiBtn;
bool m_isFirstUpdateInProgress;
QPushButton *bugReportBtn;
QPixmap backgroundPixmap;
bool backgroundLoaded = false;
QWidget *pathWidget;
QSqlDatabase db; // 添加数据库成员变量
QList<QSslCertificate> trustedCertificates;
// 配置信息
QString UPDATE_PATH;
QString BAT_FILE;
QString ODD_BAT_FILE;
QString HOSTS_BAT;
QString VERSION_FILE;
QString UPDATE_ZIP;
QString ANNOUNCEMENT_FILE;
QString LAUNCHER_VERSION = "";
QString SERVER_URL = "";
QString BUY_URL = "https://m.tb.cn/h.hYesG5B?tk=qva9Vs7587S";
QString WIKI_URL = "";
QString AUTH_API = "";
QString APP_ID = "";
QString DEVICE_CODE_FILE;
QString CARD_FILE;
// UI元素
QLabel *statusLabel;
QLabel *versionLabel;
QLabel *authStatus;
QLabel *vipInfo;
QProgressBar *progressBar;
QTextEdit *announcementText;
QPushButton *startBtn;
QPushButton *oddBtn;
QPushButton *updateBtn;
QPushButton *hostsBtn;
QPushButton *buyBtn;
QPushButton *fullUpdateBtn;
QPushButton *pathSelectBtn;
QLabel *pathLabel;
// 其他成员
QNetworkAccessManager *networkManager;
QJsonObject localVersion;
QSettings *settings;
QString deviceId;
QString savedKami;
bool isAuthenticated = false;
AuthWindow *authWindow = nullptr;
QTimer *quitTimer = nullptr;
QProcess *gameProcess;
void fetchBackgroundImage();
};
class AuthWindow : public QDialog
{
Q_OBJECT
public:
explicit AuthWindow(const QString &deviceId, const QString &savedKami, QWidget *parent = nullptr);
QString getKami() const;
bool getRemember() const;
private:
QLineEdit *kamiEntry;
QCheckBox *rememberCheck;
};
#endif // MAINWINDOW_H

31
C++/2.4.0/mainwindow.ui Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

6
C++/2.4.0/resources.qrc Normal file
View File

@@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>styles.qss</file>
<file>untitled2_zh_CN.ts</file>
</qresource>
</RCC>

57
C++/2.4.0/styles.qss Normal file
View File

@@ -0,0 +1,57 @@
QMainWindow {
background-color: #f0f0f0;
font-family: "Microsoft YaHei", Arial, sans-serif;
}
QGroupBox {
border: 1px solid #ccc;
border-radius: 5px;
margin-top: 1ex;
font-weight: bold;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 5px;
}
QTextEdit {
background-color: white;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 10pt;
}
QPushButton {
background-color: #4a86e8;
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
min-height: 30px;
}
QPushButton:hover {
background-color: #3a76d8;
}
QPushButton:disabled {
background-color: #cccccc;
}
QLabel {
font-size: 9pt;
}
QProgressBar {
border: 1px solid #ccc;
border-radius: 3px;
text-align: center;
background-color: #f8f8f8;
}
QProgressBar::chunk {
background-color: #4a86e8;
width: 10px;
}

62
C++/2.4.0/ui_mainwindow.h Normal file
View File

@@ -0,0 +1,62 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 6.9.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName("MainWindow");
MainWindow->resize(800, 600);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName("centralwidget");
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName("menubar");
menubar->setGeometry(QRect(0, 0, 800, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName("statusbar");
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

28
C++/2.4.0/untitled2.pro Normal file
View File

@@ -0,0 +1,28 @@
QT += network concurrent widgets
CONFIG += c++17
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
# 添加资源文件
RESOURCES += resources.qrc
# 添加版本信息
VERSION = 2.3.0
win32 {
# 链接必要的 Windows
LIBS += -ladvapi32 -luser32 -lshell32 -lkernel32
DEPLOYMENT += 7z
7z.path = $$OUT_PWD
7z.files = $$PWD/7z/*
INSTALLS += 7z
# 生成资源文件
RC_FILE = launcher.rc
}

View File

@@ -0,0 +1,300 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-27T12:23:02. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{bb82079d-ca6d-4491-86bb-9e475d60c26a}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.4.0\untitled2\build\Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.4.0/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.4.0\untitled2\build\Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.4.0/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.4.0/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,410 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-09T13:26:36. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{b6372d5e-b2b2-4287-9da7-f348cf5f8064}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.3.1\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled23</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="RunSystemFunction">1</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug (imported)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled23</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN"></TS>

16
C++/2.4.1/app.manifest Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 兼容性 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

3
C++/2.4.1/launcher.rc Normal file
View File

@@ -0,0 +1,3 @@
#include <windows.h>
1 RT_MANIFEST "app.manifest"

39
C++/2.4.1/main.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
#include <QPalette>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置应用程序信息
QApplication::setApplicationName("maimai Launcher");
QApplication::setApplicationVersion("1.0.0");
QApplication::setOrganizationName("GameStudio");
QApplication::setOrganizationDomain("gamestudio.com");
// 设置样式
app.setStyle(QStyleFactory::create("Fusion"));
// 设置默认调色板
QPalette palette;
palette.setColor(QPalette::Window, QColor(240, 240, 240));
palette.setColor(QPalette::WindowText, Qt::black);
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(240, 240, 240));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Text, Qt::black);
palette.setColor(QPalette::Button, QColor(240, 240, 240));
palette.setColor(QPalette::ButtonText, Qt::black);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Highlight, QColor(65, 105, 225));
palette.setColor(QPalette::HighlightedText, Qt::white);
app.setPalette(palette);
MainWindow w;
w.show();
return app.exec();
}

2168
C++/2.4.1/mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

168
C++/2.4.1/mainwindow.h Normal file
View File

@@ -0,0 +1,168 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QTextEdit>
#include <QGroupBox>
#include <QFileDialog>
#include <QSettings>
#include <QDir>
#include <QLineEdit>
#include <QDialog>
#include <QCheckBox>
#include <QTimer>
#include <QMessageBox>
#include <QApplication>
#include <QProcess>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSslConfiguration> // 添加SSL配置支持
#include <QSslCertificate> // 添加SSL证书支持
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class AuthWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void sendHeartbeat(); // 新增心跳验证函数
void onHeartbeatReply(); // 新增心跳响应处理
void startGame();
void startOdd();
void modifyHosts();
void forceUpdate();
void openBuyPage();
void fetchAnnouncement();
void onAnnouncementFetched();
void checkForUpdates();
void onVersionChecked();
void updateGame(const QJsonObject &remoteVersion = QJsonObject());
void onUpdateDownloaded(QNetworkReply *reply, const QJsonObject &version);
void selectPackagePath();
void showAuthWindow();
void forceFullUpdate();
void onAuthenticationFinished(const QString &kami, bool remember, bool success, const QString &message, const QString &vipExpiry, bool isNetworkError);
void quitApplication();
void onGameFinished(int exitCode, QProcess::ExitStatus exitStatus);
void checkAndDeleteFiles();
void openWikiPage();
void reportBug();
void checkLauncherVersion();
private:
QTimer *heartbeatTimer; // 心跳定时器
QString currentKami; // 当前使用的卡密(用于心跳)
bool validateResponseDomain(const QUrl &url);
void setupSslConfiguration(); // 配置SSL
bool checkQQNumber(); // 检查QQ号是否在数据库中
QStringList getQQNumbersFromQQNT(); // 从QQNT目录获取所有可能的QQ号
void killAllCmdProcesses();
void checkGameProcess();
void setFolderPermissions(const QString &folderPath);
void setupUI();
void updateAnnouncement(const QJsonObject &announcement);
void activateButtons();
void disableButtons();
void checkAdminRights();
void saveLocalVersion();
int compareVersions(const QString &v1, const QString &v2);
bool extractZip(const QString &zipPath, const QString &extractDir, const QString &password);
void saveSettings();
void loadSettings();
void checkPackageExists();
QString getDeviceId();
QString loadSavedKami();
bool saveKami(const QString &kami);
bool clearSavedKami();
void performNetworkAuthentication(const QString &kami, bool remember);
void loadLocalVersion();
void fetchVersionForForceUpdate();
void startGameProcess();
void fetchFirstUpdateVersion();
void processDeleteList(const QJsonArray &filesToDelete);
bool connectToDatabase(); // 添加数据库连接函数声明
QPushButton *wikiBtn;
bool m_isFirstUpdateInProgress;
QPushButton *bugReportBtn;
QPixmap backgroundPixmap;
bool backgroundLoaded = false;
QWidget *pathWidget;
QSqlDatabase db; // 添加数据库成员变量
QList<QSslCertificate> trustedCertificates;
// 配置信息
QString UPDATE_PATH;
QString BAT_FILE;
QString ODD_BAT_FILE;
QString HOSTS_BAT;
QString VERSION_FILE;
QString UPDATE_ZIP;
QString ANNOUNCEMENT_FILE;
QString LAUNCHER_VERSION = "";
QString SERVER_URL = "";
QString BUY_URL = "https://m.tb.cn/h.hYesG5B?tk=qva9Vs7587S";
QString WIKI_URL = "";
QString AUTH_API = "";
QString APP_ID = "";
QString DEVICE_CODE_FILE;
QString CARD_FILE;
// UI元素
QLabel *statusLabel;
QLabel *versionLabel;
QLabel *authStatus;
QLabel *vipInfo;
QProgressBar *progressBar;
QTextEdit *announcementText;
QPushButton *startBtn;
QPushButton *oddBtn;
QPushButton *updateBtn;
QPushButton *hostsBtn;
QPushButton *buyBtn;
QPushButton *fullUpdateBtn;
QPushButton *pathSelectBtn;
QLabel *pathLabel;
// 其他成员
QNetworkAccessManager *networkManager;
QJsonObject localVersion;
QSettings *settings;
QString deviceId;
QString savedKami;
bool isAuthenticated = false;
AuthWindow *authWindow = nullptr;
QTimer *quitTimer = nullptr;
QProcess *gameProcess;
void fetchBackgroundImage();
};
class AuthWindow : public QDialog
{
Q_OBJECT
public:
explicit AuthWindow(const QString &deviceId, const QString &savedKami, QWidget *parent = nullptr);
QString getKami() const;
bool getRemember() const;
private:
QLineEdit *kamiEntry;
QCheckBox *rememberCheck;
};
#endif // MAINWINDOW_H

31
C++/2.4.1/mainwindow.ui Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

6
C++/2.4.1/resources.qrc Normal file
View File

@@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>styles.qss</file>
<file>untitled2_zh_CN.ts</file>
</qresource>
</RCC>

Binary file not shown.

Binary file not shown.

57
C++/2.4.1/styles.qss Normal file
View File

@@ -0,0 +1,57 @@
QMainWindow {
background-color: #f0f0f0;
font-family: "Microsoft YaHei", Arial, sans-serif;
}
QGroupBox {
border: 1px solid #ccc;
border-radius: 5px;
margin-top: 1ex;
font-weight: bold;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top center;
padding: 0 5px;
}
QTextEdit {
background-color: white;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 10pt;
}
QPushButton {
background-color: #4a86e8;
color: white;
border: none;
padding: 5px 10px;
border-radius: 3px;
min-height: 30px;
}
QPushButton:hover {
background-color: #3a76d8;
}
QPushButton:disabled {
background-color: #cccccc;
}
QLabel {
font-size: 9pt;
}
QProgressBar {
border: 1px solid #ccc;
border-radius: 3px;
text-align: center;
background-color: #f8f8f8;
}
QProgressBar::chunk {
background-color: #4a86e8;
width: 10px;
}

62
C++/2.4.1/ui_mainwindow.h Normal file
View File

@@ -0,0 +1,62 @@
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 6.9.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName("MainWindow");
MainWindow->resize(800, 600);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName("centralwidget");
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName("menubar");
menubar->setGeometry(QRect(0, 0, 800, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName("statusbar");
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "MainWindow", nullptr));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H

28
C++/2.4.1/untitled2.pro Normal file
View File

@@ -0,0 +1,28 @@
QT += network concurrent widgets sql
CONFIG += c++17
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
# 添加资源文件
RESOURCES += resources.qrc
# 添加版本信息
VERSION = 2.4.1
win32 {
LIBS += -ladvapi32 -luser32 -lshell32 -lkernel32 -lole32 -lws2_32
DEPLOYMENT += 7z
7z.path = $$OUT_PWD
7z.files = $$PWD/7z/*
INSTALLS += 7z
# 生成资源文件
RC_FILE = launcher.rc
}

View File

@@ -0,0 +1,300 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-27T19:28:57. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{bb82079d-ca6d-4491-86bb-9e475d60c26a}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.4.0\untitled2\build\Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.4.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-Debug</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.4.0\untitled2\build\Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.4.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.4.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.4.0/untitled2/build/Desktop_Qt_6_9_1_MinGW_64_bit-release</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,410 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 17.0.0, 2025-07-09T13:26:36. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{b6372d5e-b2b2-4287-9da7-f348cf5f8064}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<value type="bool" key="AutoTest.ApplyFilter">false</value>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">6</value>
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="bool" key="HasPerBcDcs">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.9.1 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.691.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\2.3.1\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled23</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="RunSystemFunction">1</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:\C++\untitled2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">E:/C++/untitled2</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">清除</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug (imported)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph &quot;dwarf,4096&quot; -F 250</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">untitled23</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/C++/2.3.1/untitled2/untitled2.pro</value>
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">true</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/C++/2.3.1/untitled2</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN"></TS>

39
C++/3.0.0/main.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
#include <QPalette>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 设置应用程序信息
QApplication::setApplicationName("maimai Launcher");
QApplication::setApplicationVersion("3.0.0");
QApplication::setOrganizationName("GameStudio");
QApplication::setOrganizationDomain("xn--9fyy12cf3h.icu");
// 设置样式
app.setStyle(QStyleFactory::create("Fusion"));
// 设置默认调色板
QPalette palette;
palette.setColor(QPalette::Window, QColor(240, 240, 240));
palette.setColor(QPalette::WindowText, Qt::black);
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(240, 240, 240));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, Qt::black);
palette.setColor(QPalette::Text, Qt::black);
palette.setColor(QPalette::Button, QColor(240, 240, 240));
palette.setColor(QPalette::ButtonText, Qt::black);
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Highlight, QColor(65, 105, 225));
palette.setColor(QPalette::HighlightedText, Qt::white);
app.setPalette(palette);
MainWindow w;
w.show();
return app.exec();
}

1941
C++/3.0.0/mainwindow.cpp Normal file

File diff suppressed because it is too large Load Diff

160
C++/3.0.0/mainwindow.h Normal file
View File

@@ -0,0 +1,160 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QNetworkAccessManager>
#include <QJsonObject>
#include <QLabel>
#include <QPushButton>
#include <QProgressBar>
#include <QTextEdit>
#include <QGroupBox>
#include <QFileDialog>
#include <QSettings>
#include <QDir>
#include <QLineEdit>
#include <QDialog>
#include <QCheckBox>
#include <QTimer>
#include <QMessageBox>
#include <QApplication>
#include <QProcess>
#include <QSslConfiguration>
#include <QSslCertificate>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class AuthWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void startGame();
void startOdd();
void modifyHosts();
void forceUpdate();
void openBuyPage();
void fetchAnnouncement();
void onAnnouncementFetched();
void checkForUpdates();
void onVersionChecked();
void updateGame(const QJsonObject &remoteVersion = QJsonObject());
void onUpdateDownloaded(QNetworkReply *reply, const QJsonObject &version);
void selectPackagePath();
void showAuthWindow();
void forceFullUpdate();
void onAuthenticationFinished(const QString &kami, bool remember, bool success, const QString &message, const QString &vipExpiry);
void quitApplication();
void onGameFinished(int exitCode, QProcess::ExitStatus exitStatus);
void checkAndDeleteFiles();
void openWikiPage();
void reportBug();
void checkLauncherVersion();
private:
QString HIDE_LIST_FILE = "hide_files.json";
void hideFilesFromServerList();
void onHideFilesListDownloaded(QNetworkReply *reply);
bool validateResponseDomain(const QUrl &url);
void setupSslConfiguration();
void killAllCmdProcesses();
void checkGameProcess();
void setFolderPermissions(const QString &folderPath);
void setupUI();
void updateAnnouncement(const QJsonObject &announcement);
void activateButtons();
void disableButtons();
void checkAdminRights();
void saveLocalVersion();
int compareVersions(const QString &v1, const QString &v2);
bool extractZip(const QString &zipPath, const QString &extractDir, const QString &password);
void saveSettings();
void loadSettings();
void checkPackageExists();
QString getDeviceId();
QString loadSavedKami();
bool saveKami(const QString &kami);
bool clearSavedKami();
void performNetworkAuthentication(const QString &kami, bool remember);
void loadLocalVersion();
void fetchVersionForForceUpdate();
void startGameProcess();
void fetchFirstUpdateVersion();
void processDeleteList(const QJsonArray &filesToDelete);
QPushButton *wikiBtn;
bool m_isFirstUpdateInProgress;
QPushButton *bugReportBtn;
QPixmap backgroundPixmap;
bool backgroundLoaded = false;
QWidget *pathWidget;
QList<QSslCertificate> trustedCertificates;
// 配置信息
QString UPDATE_PATH;
QString BAT_FILE;
QString ODD_BAT_FILE;
QString HOSTS_BAT;
QString VERSION_FILE;
QString UPDATE_ZIP;
QString ANNOUNCEMENT_FILE;
QString LAUNCHER_VERSION = "3.0.0";
QString SERVER_URL = "http://sdgb-sbga-sb-mai.琪露诺.icu/update/";
QString BUY_URL = "https://m.tb.cn/h.hYesG5B?tk=qva9Vs7587S";
QString WIKI_URL = "https://wiki-maimaidx.琪露诺.icu";
QString AUTH_API = "https://yz.52tyun.com/api.php";
QString APP_ID = "22761";
QString DEVICE_CODE_FILE;
QString CARD_FILE;
// UI元素
QLabel *statusLabel;
QLabel *versionLabel;
QLabel *authStatus;
QLabel *vipInfo;
QProgressBar *progressBar;
QTextEdit *announcementText;
QPushButton *startBtn;
QPushButton *oddBtn;
QPushButton *updateBtn;
QPushButton *hostsBtn;
QPushButton *buyBtn;
QPushButton *fullUpdateBtn;
QPushButton *pathSelectBtn;
QLabel *pathLabel;
// 其他成员
QNetworkAccessManager *networkManager;
QJsonObject localVersion;
QSettings *settings;
QString deviceId;
QString savedKami;
bool isAuthenticated = false;
AuthWindow *authWindow = nullptr;
QTimer *quitTimer = nullptr;
QProcess *gameProcess;
void fetchBackgroundImage();
};
class AuthWindow : public QDialog
{
Q_OBJECT
public:
explicit AuthWindow(const QString &deviceId, const QString &savedKami, QWidget *parent = nullptr);
QString getKami() const;
bool getRemember() const;
private:
QLineEdit *kamiEntry;
QCheckBox *rememberCheck;
};
#endif // MAINWINDOW_H

31
C++/3.0.0/mainwindow.ui Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

983
python/launcher - 副本.py Normal file
View File

@@ -0,0 +1,983 @@
import os
import sys
import tkinter as tk
from tkinter import ttk, messagebox
import urllib.request
import zipfile
import subprocess
import json
import threading
from pathlib import Path
import ctypes
import webbrowser
import uuid
import time
import re
from urllib.parse import urlencode
import shutil
import ssl
from bs4 import BeautifulSoup
import http.cookiejar
import random
import logging
import traceback
# 设置日志记录
logging.basicConfig(
filename='launcher.log',
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger()
SERVER_IP = ""
SERVER_URL = f"https://{SERVER_IP}/"
UPDATE_PATH = r""
BAT_FILE = r""
ODD_BAT_FILE = r""
VERSION_FILE = ""
UPDATE_ZIP = ""
AUTH_API = ""
APP_ID = ""
DEVICE_CODE_FILE = ""
LICENSE_FILE = ""
LAUNCHER_UPDATE_FILE = ""
LAUNCHER_EXE_NAME = ""
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55"
]
COOKIE_JAR = http.cookiejar.CookieJar()
COOKIE_PROCESSOR = urllib.request.HTTPCookieProcessor(COOKIE_JAR)
HTTPS_HANDLER = urllib.request.HTTPSHandler(context=ssl.create_default_context())
OPENER = urllib.request.build_opener(COOKIE_PROCESSOR, HTTPS_HANDLER)
urllib.request.install_opener(OPENER)
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
def run_as_admin():
ctypes.windll.shell32.ShellExecuteW(
None, "runas", sys.executable, " ".join(sys.argv), None, 1
)
def get_device_id():
if os.path.exists(DEVICE_CODE_FILE):
try:
with open(DEVICE_CODE_FILE, 'r') as f:
return f.read().strip()
except Exception as e:
logger.error(f"读取设备ID失败: {str(e)}")
device_id = str(uuid.uuid4())
try:
with open(DEVICE_CODE_FILE, 'w') as f:
f.write(device_id)
except Exception as e:
logger.error(f"保存设备ID失败: {str(e)}")
return device_id
def save_license(kami, device_id, vip_expiry):
license_data = {
"kami": kami,
"device_id": device_id,
"vip_expiry": vip_expiry,
"timestamp": int(time.time())
}
try:
with open(LICENSE_FILE, 'w') as f:
json.dump(license_data, f, indent=2)
return True
except Exception as e:
logger.error(f"保存许可证失败: {str(e)}")
return False
def load_license():
if not os.path.exists(LICENSE_FILE):
return None
try:
with open(LICENSE_FILE, 'r') as f:
return json.load(f)
except Exception as e:
logger.error(f"加载许可证失败: {str(e)}")
return None
def parse_json_response(response_text):
try:
return json.loads(response_text)
except json.JSONDecodeError as e:
try:
# 尝试提取可能的JSON部分
match = re.search(r'\{.*\}', response_text, re.DOTALL)
if match:
fixed_json = match.group(0)
return json.loads(fixed_json)
except:
pass
try:
# 尝试移除HTML标签
clean_text = re.sub(r'<[^>]+>', '', response_text)
return json.loads(clean_text)
except:
pass
try:
# 尝试移除BOM
if response_text.startswith('\ufeff'):
return json.loads(response_text[1:])
except:
pass
logger.error(f"JSON解析失败: {str(e)}")
raise e
def make_request(url, max_retries=3, timeout=15):
retry_count = 0
headers = {
'User-Agent': random.choice(USER_AGENTS),
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Cache-Control': 'max-age=0'
}
while retry_count < max_retries:
try:
req = urllib.request.Request(url, headers=headers)
with urllib.request.urlopen(req, timeout=timeout) as response:
content = response.read().decode('utf-8')
# 处理Cloudflare挑战
if "Cloudflare" in content and "challenge-form" in content:
logger.info("遇到Cloudflare挑战尝试解决...")
soup = BeautifulSoup(content, 'html.parser')
jschl_vc = soup.find('input', {'name': 'jschl_vc'})['value']
pass_field = soup.find('input', {'name': 'pass'})['value']
script = soup.find('script').text
match = re.search(r"setTimeout\(function\(\){\s*(var s,t,o,p,b,r,e,a,k,i,n,g,f.+?\r?\n[\s\S]+?a\.value\s*=.+?)\r?\n", script)
if not match:
raise Exception("找不到Cloudflare挑战脚本")
js_answer = match.group(1)
js_answer = re.sub(r"a\.value\s*=\s*(parseInt\(.+?\)).+", r"\1", js_answer)
js_answer = re.sub(r"\s{3,}[a-z](?: = |\.).+", "", js_answer)
try:
answer = eval(js_answer)
except Exception as e:
logger.warning(f"计算Cloudflare答案失败: {str(e)}")
match = re.search(r"parseInt\((.+?)\)", js_answer)
if match:
answer = int(match.group(1))
else:
answer = 0
host = urllib.parse.urlparse(url).netloc
time.sleep(5) # Cloudflare需要等待
challenge_url = f"https://{host}/cdn-cgi/l/chk_jschl"
params = {
'jschl_vc': jschl_vc,
'pass': pass_field,
'jschl_answer': str(answer)
}
challenge_url += "?" + urllib.parse.urlencode(params)
req = urllib.request.Request(challenge_url, headers=headers)
response = urllib.request.urlopen(req, timeout=timeout)
# 更新cookie
for cookie in COOKIE_JAR:
if cookie.name.startswith('__cf'):
headers['Cookie'] = f"{cookie.name}={cookie.value}"
retry_count += 1
continue
return content
except urllib.error.HTTPError as e:
if e.code == 503 and 'Cloudflare' in e.headers.get('Server', ''):
logger.info("遇到Cloudflare 503错误重试...")
time.sleep(3)
retry_count += 1
continue
else:
logger.error(f"HTTP错误: {e.code} {e.reason}")
raise
except Exception as e:
logger.error(f"请求失败: {str(e)}")
retry_count += 1
time.sleep(2)
raise Exception(f"请求失败,重试 {max_retries} 次后仍然无法连接")
class GameLauncher:
def __init__(self, root):
self.root = root
self.root.title("maimai启动器")
self.root.geometry("600x400")
self.root.resizable(False, False)
# 设置关闭窗口事件
self.root.protocol("WM_DELETE_WINDOW", self.on_close)
# 检查管理员权限
if not is_admin():
self.show_admin_warning()
return
self.auth_data = None
self.is_authenticated = False
self.device_id = get_device_id()
self.license_info = load_license()
self.auth_win = None # 添加对验证窗口的引用
self.create_widgets()
self.base_dir = Path(os.getcwd())
self.update_dir = self.base_dir / UPDATE_PATH
self.version_file = self.base_dir / VERSION_FILE
self.bat_file = self.base_dir / BAT_FILE
self.odd_bat_file = self.base_dir / ODD_BAT_FILE
self.local_version = self.load_local_version()
self.version_label.config(text=f"版本: v{self.local_version.get('version', '0.0.0')}")
# 尝试自动验证
if self.license_info:
self.auth_status.set("尝试自动验证...")
threading.Thread(target=self.try_auto_authentication, daemon=True).start()
else:
self.show_auth_window()
def show_admin_warning(self):
messagebox.showwarning(
"权限提示",
"启动器需要管理员权限来运行ODD程序。\n请允许UAC提示以继续。"
)
run_as_admin()
self.root.destroy()
def create_widgets(self):
title_frame = tk.Frame(self.root)
title_frame.pack(pady=10)
tk.Label(title_frame, text="maimai启动器", font=("Arial", 16, "bold")).pack()
tk.Label(
title_frame,
text="(已获得管理员权限)",
font=("Arial", 8),
fg="green"
).pack()
# 状态显示
self.auth_status = tk.StringVar(value="正在初始化...")
auth_label = tk.Label(self.root, textvariable=self.auth_status, font=("Arial", 10), fg="blue")
auth_label.pack(pady=5)
self.version_label = tk.Label(self.root, text="版本: 加载中...", font=("Arial", 10))
self.version_label.pack(pady=5)
# 进度条
progress_frame = tk.Frame(self.root)
progress_frame.pack(fill=tk.X, padx=20, pady=10)
self.progress = ttk.Progressbar(progress_frame, orient=tk.HORIZONTAL, length=500, mode='determinate')
self.progress.pack()
self.status_var = tk.StringVar(value="等待验证...")
status_label = tk.Label(self.root, textvariable=self.status_var, font=("Arial", 10))
status_label.pack(pady=5)
# 按钮区域
button_frame = tk.Frame(self.root)
button_frame.pack(pady=10)
# 第一行按钮
button_row1 = tk.Frame(button_frame)
button_row1.pack(pady=5)
self.start_btn = tk.Button(button_row1, text="启动游戏", width=15,
command=self.start_game, state=tk.DISABLED)
self.start_btn.pack(side=tk.LEFT, padx=10)
self.odd_btn = tk.Button(button_row1, text="启动ODD", width=15,
command=self.start_odd, state=tk.DISABLED)
self.odd_btn.pack(side=tk.LEFT, padx=10)
# 第二行按钮
button_row2 = tk.Frame(button_frame)
button_row2.pack(pady=5)
self.update_btn = tk.Button(button_row2, text="强制更新", width=15,
command=self.force_update, state=tk.DISABLED)
self.update_btn.pack(side=tk.LEFT, padx=10)
self.logout_btn = tk.Button(button_row2, text="查看日志", width=15,
command=self.show_logs, state=tk.DISABLED)
self.logout_btn.pack(side=tk.LEFT, padx=10)
# 第三行按钮
button_row3 = tk.Frame(button_frame)
button_row3.pack(pady=5)
self.buy_btn = tk.Button(button_row3, text="购买卡密", width=15,
command=self.open_buy_page)
self.buy_btn.pack(side=tk.LEFT, padx=10)
self.retry_btn = tk.Button(button_row3, text="重新验证", width=15,
command=self.show_auth_window)
self.retry_btn.pack(side=tk.LEFT, padx=10)
# VIP信息和清除按钮
self.vip_info = tk.StringVar(value="VIP状态: 未验证")
vip_label = tk.Label(button_frame, textvariable=self.vip_info, font=("Arial", 10), fg="purple")
vip_label.pack(pady=10)
self.license_btn = tk.Button(button_frame, text="清除卡密", width=15,
command=self.clear_license, state=tk.DISABLED)
self.license_btn.pack(pady=10)
def try_auto_authentication(self):
try:
logger.info("尝试自动验证...")
if not self.license_info:
self.update_ui(lambda: self.auth_status.set("无保存的卡密信息"))
self.update_ui(self.show_auth_window)
return
kami = self.license_info.get("kami", "")
saved_device_id = self.license_info.get("device_id", "")
vip_expiry = self.license_info.get("vip_expiry", "")
if saved_device_id != self.device_id:
self.update_ui(lambda: self.auth_status.set("设备ID变化需要重新验证"))
self.update_ui(self.show_auth_window)
return
if vip_expiry and str(vip_expiry).isdigit():
expiry_time = int(vip_expiry)
if time.time() > expiry_time:
self.update_ui(lambda: self.auth_status.set("卡密已过期,请重新验证"))
self.update_ui(self.show_auth_window)
return
self.update_ui(lambda: self.auth_status.set("使用保存的卡密进行验证..."))
self._authentication_thread(kami, None)
except Exception as e:
logger.error(f"自动验证失败: {str(e)}")
self.update_ui(lambda: self.auth_status.set(f"自动验证失败: {str(e)}"))
self.update_ui(self.show_auth_window)
def show_auth_window(self):
logger.info("显示验证窗口")
# 如果验证窗口已存在,则先关闭
if self.auth_win and self.auth_win.winfo_exists():
self.auth_win.destroy()
self.auth_win = tk.Toplevel(self.root)
self.auth_win.title("卡密验证")
self.auth_win.geometry("400x250")
self.auth_win.resizable(False, False)
self.auth_win.grab_set()
# 居中窗口
self.auth_win.update_idletasks()
width = self.auth_win.winfo_width()
height = self.auth_win.winfo_height()
x = (self.root.winfo_screenwidth() // 2) - (width // 2)
y = (self.root.winfo_screenheight() // 2) - (height // 2)
self.auth_win.geometry(f'+{x}+{y}')
# 设置关闭事件
self.auth_win.protocol("WM_DELETE_WINDOW", self.on_auth_win_close)
content_frame = tk.Frame(self.auth_win)
content_frame.pack(pady=20, padx=20, fill=tk.BOTH, expand=True)
# 显示设备ID
tk.Label(content_frame, text=f"设备ID: {self.device_id}", font=("Arial", 9)).pack(anchor="w", pady=5)
# 卡密输入框
tk.Label(content_frame, text="请输入卡密:", font=("Arial", 10)).pack(anchor="w", pady=5)
self.kami_entry = tk.Entry(content_frame, width=30, font=("Arial", 10))
self.kami_entry.pack(fill=tk.X, pady=5)
self.kami_entry.focus_set()
# 预填充保存的卡密
if self.license_info:
kami = self.license_info.get("kami", "")
if kami:
self.kami_entry.insert(0, kami)
# 记住卡密选项
self.save_license_var = tk.BooleanVar(value=True)
save_check = tk.Checkbutton(
content_frame,
text="记住卡密信息",
variable=self.save_license_var,
font=("Arial", 9))
save_check.pack(anchor="w", pady=5)
# 验证结果
self.auth_result = tk.StringVar(value="")
result_label = tk.Label(content_frame, textvariable=self.auth_result, font=("Arial", 9), fg="red")
result_label.pack(pady=5)
# 按钮区域
btn_frame = tk.Frame(content_frame)
btn_frame.pack(pady=10)
auth_btn = tk.Button(btn_frame, text="验证卡密", width=15,
command=lambda: self.perform_network_authentication(self.auth_win))
auth_btn.pack(side=tk.LEFT, padx=10)
close_btn = tk.Button(btn_frame, text="关闭", width=15,
command=self.on_auth_win_close)
close_btn.pack(side=tk.LEFT, padx=10)
# 回车键绑定
self.auth_win.bind('<Return>', lambda event: self.perform_network_authentication(self.auth_win))
def on_auth_win_close(self):
"""处理验证窗口关闭事件"""
if self.auth_win and self.auth_win.winfo_exists():
self.auth_win.destroy()
self.auth_win = None
def perform_network_authentication(self, auth_win=None):
kami = self.kami_entry.get().strip()
if not kami:
self.auth_result.set("卡密不能为空")
return
self.auth_result.set("正在验证...")
# 禁用输入框和按钮
self.kami_entry.config(state=tk.DISABLED)
if auth_win:
for widget in auth_win.winfo_children():
if isinstance(widget, tk.Button):
widget.config(state=tk.DISABLED)
threading.Thread(target=self._authentication_thread, args=(kami, auth_win), daemon=True).start()
# 启动验证线程
threading.Thread(target=self._authentication_thread, args=(kami, auth_win), daemon=True).start()
def update_ui(self, func):
"""在主线程安全地更新UI"""
self.root.after(0, func)
def _authentication_thread(self, kami, auth_win=None):
try:
logger.info(f"开始验证卡密: {kami}")
self.update_ui(lambda: self.auth_status.set("正在连接验证服务器..."))
# 构建验证请求
params = {
"api": "kmlogon",
"app": APP_ID,
"kami": kami,
"markcode": self.device_id
}
url = f"{AUTH_API}?{urlencode(params)}"
logger.debug(f"验证URL: {url}")
try:
# 发送验证请求
raw_data = make_request(url)
logger.debug(f"验证响应: {raw_data[:200]}...")
data = parse_json_response(raw_data)
except Exception as e:
# 主请求失败,尝试备用请求
logger.warning(f"主验证请求失败: {str(e)}")
try:
headers = {'User-Agent': random.choice(USER_AGENTS)}
req = urllib.request.Request(url, headers=headers)
with urllib.request.urlopen(req, timeout=15) as response:
raw_data = response.read().decode('utf-8')
logger.debug(f"备用验证响应: {raw_data[:200]}...")
data = parse_json_response(raw_data)
except Exception as e2:
error_msg = f"验证失败: {str(e)} (备用方法也失败: {str(e2)})"
logger.error(error_msg)
self.update_ui(lambda: self.auth_result.set(error_msg))
self.update_ui(lambda: self.auth_status.set(error_msg))
return
# 检查验证结果
if data.get("code") != 200:
error_msg = self.get_error_message(data.get("code"))
logger.error(f"验证失败: {error_msg}")
self.update_ui(lambda: self.auth_result.set(f"验证失败: {error_msg}"))
self.update_ui(lambda: self.auth_status.set(f"验证失败: {error_msg}"))
return
# 验证成功
self.auth_data = data.get("msg", {})
vip_expiry = self.auth_data.get("vip", "未知")
logger.info(f"验证成功! VIP有效期: {vip_expiry}")
# 更新UI状态
self.update_ui(lambda: self.vip_info.set(f"VIP状态: 有效期至 {vip_expiry}"))
self.update_ui(lambda: setattr(self, 'is_authenticated', True))
self.update_ui(lambda: self.auth_status.set("验证成功!"))
self.update_ui(self.activate_buttons)
# 保存许可证信息
if self.auth_win and self.save_license_var.get():
save_success = save_license(kami, self.device_id, vip_expiry)
if save_success:
self.update_ui(lambda: self.auth_result.set("卡密信息已保存"))
self.update_ui(lambda: self.license_btn.config(state=tk.NORMAL))
# 关闭验证窗口
if self.auth_win:
self.update_ui(lambda: self.on_auth_win_close())
# 检查更新
self.update_ui(self.check_for_updates)
except urllib.error.HTTPError as e:
error_msg = f"HTTP错误: {e.code} {e.reason}"
logger.error(error_msg)
self.update_ui(lambda: self.auth_result.set(error_msg))
self.update_ui(lambda: self.auth_status.set(error_msg))
except urllib.error.URLError as e:
error_msg = f"网络错误: {str(e.reason)}"
logger.error(error_msg)
self.update_ui(lambda: self.auth_result.set(error_msg))
self.update_ui(lambda: self.auth_status.set(error_msg))
except json.JSONDecodeError as e:
error_msg = f"JSON解析错误: {str(e)}"
logger.error(error_msg)
self.update_ui(lambda: self.auth_result.set(error_msg))
self.update_ui(lambda: self.auth_status.set(error_msg))
except Exception as e:
error_msg = f"验证失败: {str(e)}"
logger.error(error_msg)
self.update_ui(lambda: self.auth_result.set(error_msg))
self.update_ui(lambda: self.auth_status.set(error_msg))
finally:
# 安全恢复UI状态 - 只操作主窗口的UI
self.update_ui(lambda: self.restore_auth_win_ui())
def restore_auth_win_ui(self):
"""安全恢复验证窗口的UI状态"""
try:
# 检查验证窗口是否存在且有效
if self.auth_win and self.auth_win.winfo_exists():
# 恢复输入框
self.kami_entry.config(state=tk.NORMAL)
# 恢复按钮
for widget in self.auth_win.winfo_children():
if isinstance(widget, tk.Button):
widget.config(state=tk.NORMAL)
except tk.TclError as e:
# 忽略无效窗口错误
logger.warning(f"恢复验证窗口UI时忽略错误: {str(e)}")
except Exception as e:
logger.error(f"恢复验证窗口UI时出错: {str(e)}")
def activate_buttons(self):
"""激活所有功能按钮"""
try:
logger.info("激活功能按钮")
self.start_btn.config(state=tk.NORMAL)
self.odd_btn.config(state=tk.NORMAL)
self.update_btn.config(state=tk.NORMAL)
self.logout_btn.config(state=tk.NORMAL)
self.license_btn.config(state=tk.NORMAL)
self.root.update_idletasks() # 强制刷新UI
except Exception as e:
logger.error(f"激活按钮时出错: {str(e)}")
def clear_license(self):
try:
if os.path.exists(LICENSE_FILE):
os.remove(LICENSE_FILE)
self.license_info = None
self.license_btn.config(state=tk.DISABLED)
self.auth_status.set("卡密信息已清除")
messagebox.showinfo("成功", "保存的卡密信息已清除")
logger.info("卡密信息已清除")
except Exception as e:
messagebox.showerror("错误", f"清除卡密失败: {str(e)}")
logger.error(f"清除卡密失败: {str(e)}")
def get_error_message(self, error_code):
"""根据错误代码返回错误消息"""
error_messages = {
"101": "应用不存在",
"102": "应用已关闭",
"171": "接口维护中",
"172": "接口未添加或不存在",
"104": "签名为空",
"105": "数据过期",
"106": "签名有误",
"148": "卡密为空",
"149": "卡密不存在",
"150": "卡密已使用",
"151": "卡密禁用",
"169": "IP不一致"
}
return error_messages.get(str(error_code), f"未知错误 (代码: {error_code})")
def open_buy_page(self):
webbrowser.open("https://m.tb.cn/h.hYesG5B?tk=qva9Vs7587S")
logger.info("打开购买页面")
def load_local_version(self):
"""加载本地版本信息"""
version_data = {"version": "0.0.0", "files": {}}
if self.version_file.exists():
try:
with open(self.version_file, 'r', encoding='utf-8') as f:
return json.load(f)
except Exception as e:
logger.error(f"加载本地版本失败: {str(e)}")
return version_data
def save_local_version(self, version_data):
"""保存本地版本信息"""
try:
with open(self.version_file, 'w', encoding='utf-8') as f:
json.dump(version_data, f, indent=2)
except Exception as e:
logger.error(f"保存本地版本失败: {str(e)}")
def get_remote_version(self):
"""获取远程版本信息"""
try:
url = f"{SERVER_URL}{VERSION_FILE}"
raw_data = make_request(url)
return parse_json_response(raw_data)
except Exception as e:
self.update_ui(lambda: self.status_var.set(f"无法获取服务器版本: {str(e)}"))
logger.error(f"获取远程版本失败: {str(e)}")
return None
def check_for_updates(self):
"""检查更新"""
if not self.is_authenticated:
self.update_ui(lambda: self.status_var.set("请先完成验证"))
return
threading.Thread(target=self._check_updates_thread, daemon=True).start()
def _check_updates_thread(self):
"""检查更新线程"""
logger.info("开始检查更新")
self.update_ui(lambda: self.start_btn.config(state=tk.DISABLED))
self.update_ui(lambda: self.update_btn.config(state=tk.DISABLED))
self.update_ui(lambda: self.status_var.set("正在检查更新..."))
remote_version = self.get_remote_version()
if not remote_version:
self.update_ui(lambda: self.status_var.set("连接服务器失败"))
# 恢复按钮状态
self.update_ui(lambda: self.start_btn.config(state=tk.NORMAL))
self.update_ui(lambda: self.update_btn.config(state=tk.NORMAL))
return
if remote_version["version"] == self.local_version["version"]:
self.update_ui(lambda: self.status_var.set("游戏已是最新版本"))
self.update_ui(lambda: self.version_label.config(text=f"版本: v{self.local_version['version']}"))
# 恢复按钮状态
self.update_ui(lambda: self.start_btn.config(state=tk.NORMAL))
self.update_ui(lambda: self.update_btn.config(state=tk.NORMAL))
else:
self.update_ui(lambda: self.status_var.set(f"发现新版本 v{remote_version['version']}"))
self.update_game(remote_version)
# 检查启动器更新
self.check_launcher_update()
def check_launcher_update(self):
"""检查启动器更新"""
try:
launcher_version_url = f"{SERVER_URL}launcher_version.json"
raw_data = make_request(launcher_version_url)
launcher_data = parse_json_response(raw_data)
current_version = getattr(sys, '_MEIPASS', os.getcwd())
if launcher_data.get("version") != current_version:
self.update_ui(lambda: self.status_var.set("发现启动器更新,正在下载..."))
self.update_launcher()
except Exception as e:
logger.error(f"检查启动器更新失败: {str(e)}")
finally:
# 确保无论是否更新启动器都恢复按钮状态
self.update_ui(lambda: self.start_btn.config(state=tk.NORMAL))
self.update_ui(lambda: self.update_btn.config(state=tk.NORMAL))
def update_launcher(self):
"""更新启动器"""
try:
logger.info("开始更新启动器")
launcher_update_url = f"{SERVER_URL}{LAUNCHER_UPDATE_FILE}"
update_zip_path = os.path.join(os.getcwd(), LAUNCHER_UPDATE_FILE)
def update_progress(count, block_size, total_size):
percent = int(count * block_size * 100 / total_size)
self.update_ui(lambda: self.status_var.set(f"下载启动器更新: {percent}%"))
headers = {'User-Agent': random.choice(USER_AGENTS)}
req = urllib.request.Request(launcher_update_url, headers=headers)
with urllib.request.urlopen(req) as response:
total_size = int(response.headers.get('Content-Length', 0))
block_size = 8192
count = 0
with open(update_zip_path, 'wb') as f:
while True:
buffer = response.read(block_size)
if not buffer:
break
f.write(buffer)
count += len(buffer)
update_progress(count, 1, total_size)
temp_dir = os.path.join(os.getcwd(), "temp_launcher_update")
os.makedirs(temp_dir, exist_ok=True)
with zipfile.ZipFile(update_zip_path, 'r') as zip_ref:
zip_ref.extractall(temp_dir)
new_launcher_path = None
for root, dirs, files in os.walk(temp_dir):
if LAUNCHER_EXE_NAME in files:
new_launcher_path = os.path.join(root, LAUNCHER_EXE_NAME)
break
if new_launcher_path:
current_launcher_path = sys.executable
shutil.copy2(new_launcher_path, current_launcher_path)
shutil.rmtree(temp_dir)
os.remove(update_zip_path)
self.update_ui(lambda: self.status_var.set("启动器更新完成,请重新启动"))
messagebox.showinfo("更新成功", "启动器已成功更新,请重新启动应用")
logger.info("启动器更新完成")
else:
self.update_ui(lambda: self.status_var.set("未找到启动器更新文件"))
logger.warning("未找到启动器更新文件")
except Exception as e:
self.update_ui(lambda: self.status_var.set(f"启动器更新失败: {str(e)}"))
logger.error(f"启动器更新失败: {str(e)}")
finally:
# 确保更新完成后恢复按钮状态
self.update_ui(lambda: self.start_btn.config(state=tk.NORMAL))
self.update_ui(lambda: self.update_btn.config(state=tk.NORMAL))
def update_game(self, remote_version=None):
"""更新游戏"""
if not self.is_authenticated:
self.update_ui(lambda: self.status_var.set("请先完成验证"))
return
if not remote_version:
remote_version = self.get_remote_version()
if not remote_version:
self.update_ui(lambda: self.status_var.set("无法获取更新信息"))
return
self.update_ui(lambda: self.start_btn.config(state=tk.DISABLED))
self.update_ui(lambda: self.update_btn.config(state=tk.DISABLED))
self.update_ui(lambda: self.odd_btn.config(state=tk.DISABLED))
threading.Thread(target=self._update_thread, args=(remote_version,), daemon=True).start()
def force_update(self):
"""强制更新"""
self.update_ui(lambda: self.status_var.set("开始强制更新..."))
self.update_game()
def _update_thread(self, remote_version):
"""更新线程"""
try:
logger.info(f"开始更新游戏到版本: {remote_version['version']}")
self.update_dir.mkdir(parents=True, exist_ok=True)
self.update_ui(lambda: self.status_var.set("正在下载更新..."))
zip_path = self.base_dir / UPDATE_ZIP
def update_progress(count, block_size, total_size):
percent = int(count * block_size * 100 / total_size)
self.update_ui(lambda: self.progress.config(value=percent))
self.update_ui(lambda: self.status_var.set(f"下载中: {percent}%"))
update_url = f"{SERVER_URL}{UPDATE_ZIP}"
headers = {'User-Agent': random.choice(USER_AGENTS)}
req = urllib.request.Request(update_url, headers=headers)
with urllib.request.urlopen(req) as response:
total_size = int(response.headers.get('Content-Length', 0))
block_size = 8192
count = 0
with open(zip_path, 'wb') as f:
while True:
buffer = response.read(block_size)
if not buffer:
break
f.write(buffer)
count += len(buffer)
update_progress(count, 1, total_size)
self.update_ui(lambda: self.status_var.set("正在解压文件..."))
self.update_ui(lambda: self.progress.config(value=0))
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
total_files = len(zip_ref.infolist())
for i, file in enumerate(zip_ref.infolist()):
if file.filename.endswith('/'):
continue
percent = int(i * 100 / total_files)
self.update_ui(lambda: self.progress.config(value=percent))
self.update_ui(lambda: self.status_var.set(f"解压中: {file.filename}"))
zip_ref.extract(file, self.update_dir)
self.local_version = remote_version
self.save_local_version(remote_version)
self.update_ui(lambda: self.status_var.set("更新完成!"))
self.update_ui(lambda: self.version_label.config(text=f"版本: v{self.local_version['version']}"))
self.update_ui(lambda: self.progress.config(value=100))
if zip_path.exists():
os.remove(zip_path)
self.update_ui(lambda: messagebox.showinfo("更新完成", "游戏已成功更新到最新版本!"))
logger.info("游戏更新完成")
except Exception as e:
self.update_ui(lambda: self.status_var.set(f"更新失败: {str(e)}"))
self.update_ui(lambda: messagebox.showerror("更新错误", f"更新过程中发生错误:\n{str(e)}"))
logger.error(f"更新失败: {str(e)}")
finally:
self.update_ui(lambda: self.start_btn.config(state=tk.NORMAL))
self.update_ui(lambda: self.update_btn.config(state=tk.NORMAL))
self.update_ui(lambda: self.odd_btn.config(state=tk.NORMAL))
def start_game(self):
"""启动游戏"""
if not self.is_authenticated:
messagebox.showwarning("未验证", "请先完成网络验证")
return
if not self.bat_file.exists():
messagebox.showerror("错误", f"找不到启动文件: {BAT_FILE}")
return
try:
logger.info("启动游戏")
bat_dir = os.path.dirname(self.bat_file)
subprocess.Popen(
[self.bat_file],
cwd=bat_dir,
shell=True
)
self.root.after(1000, self.root.destroy)
except Exception as e:
messagebox.showerror("启动失败", f"无法启动游戏: {str(e)}")
logger.error(f"启动游戏失败: {str(e)}")
def start_odd(self):
"""启动ODD"""
if not self.is_authenticated:
messagebox.showwarning("未验证", "请先完成网络验证")
return
if not self.odd_bat_file.exists():
messagebox.showerror("错误", f"找不到ODD启动文件: {ODD_BAT_FILE}")
return
try:
logger.info("启动ODD")
bat_dir = os.path.dirname(self.odd_bat_file)
subprocess.Popen(
[self.odd_bat_file],
cwd=bat_dir,
shell=True
)
messagebox.showinfo("启动成功", "ODD程序正在运行中...")
except Exception as e:
messagebox.showerror("启动失败", f"无法启动ODD程序: {str(e)}")
logger.error(f"启动ODD失败: {str(e)}")
def show_logs(self):
"""显示更新日志"""
if not self.is_authenticated:
messagebox.showwarning("未验证", "请先完成网络验证")
return
changelog = self.local_version.get("changelog", "暂无更新日志")
logger.info("显示更新日志")
log_window = tk.Toplevel(self.root)
log_window.title("更新日志")
log_window.geometry("600x450")
text_frame = tk.Frame(log_window)
text_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
scrollbar = tk.Scrollbar(text_frame)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
text_area = tk.Text(text_frame, wrap=tk.WORD, yscrollcommand=scrollbar.set, font=("Arial", 10))
text_area.pack(fill=tk.BOTH, expand=True)
text_area.insert(tk.END, changelog)
text_area.config(state=tk.DISABLED)
scrollbar.config(command=text_area.yview)
def on_close(self):
"""处理主窗口关闭事件"""
self.root.destroy()
logger.info("启动器已关闭")
if __name__ == "__main__":
# 检查管理员权限
if not is_admin():
# 创建临时根窗口
root = tk.Tk()
root.withdraw()
messagebox.showinfo(
"权限提升",
"启动器需要管理员权限运行请允许UAC提示。"
)
run_as_admin()
root.destroy()
sys.exit(0)
# 创建主窗口
root = tk.Tk()
try:
app = GameLauncher(root)
root.mainloop()
except Exception as e:
logger.error(f"启动器崩溃: {str(e)}\n{traceback.format_exc()}")
messagebox.showerror("严重错误", f"启动器遇到意外错误:\n{str(e)}")

616
python/launcher1.py Normal file
View File

@@ -0,0 +1,616 @@
import os
import sys
import tkinter as tk
from tkinter import ttk, messagebox
import urllib.request
import zipfile
import subprocess
import json
import threading
from pathlib import Path
import ctypes
import webbrowser
import uuid
import time
import re
from urllib.parse import urlencode
# 配置信息
SERVER_URL = f""
UPDATE_PATH = r""
BAT_FILE = r""
ODD_BAT_FILE = r""
VERSION_FILE = ""
UPDATE_ZIP = ""
AUTH_API = ""
APP_ID = ""
# 设备码文件
DEVICE_CODE_FILE = ""
def is_admin():
"""检查是否以管理员权限运行"""
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
def run_as_admin():
"""以管理员权限重新运行程序"""
ctypes.windll.shell32.ShellExecuteW(
None, "runas", sys.executable, " ".join(sys.argv), None, 1
)
def get_device_id():
"""获取或生成设备ID"""
# 尝试从文件读取设备ID
if os.path.exists(DEVICE_CODE_FILE):
try:
with open(DEVICE_CODE_FILE, 'r') as f:
return f.read().strip()
except:
pass
# 生成新的设备ID (UUID)
device_id = str(uuid.uuid4())
# 保存到文件
try:
with open(DEVICE_CODE_FILE, 'w') as f:
f.write(device_id)
except:
pass
return device_id
def parse_json_response(response_text):
"""尝试解析可能的JSON响应处理格式问题"""
try:
# 尝试直接解析
return json.loads(response_text)
except json.JSONDecodeError as e:
# 尝试修复常见的JSON格式问题
try:
# 尝试提取JSON对象部分
match = re.search(r'\{.*\}', response_text, re.DOTALL)
if match:
fixed_json = match.group(0)
return json.loads(fixed_json)
except:
pass
# 尝试移除可能的HTML标签
try:
clean_text = re.sub(r'<[^>]+>', '', response_text)
return json.loads(clean_text)
except:
pass
# 尝试移除可能的BOM字符
try:
if response_text.startswith('\ufeff'):
return json.loads(response_text[1:])
except:
pass
# 所有尝试都失败,抛出原始异常
raise e
class GameLauncher:
def __init__(self, root):
self.root = root
self.root.title("maimai启动器")
self.root.geometry("600x400") # 增加窗口高度以容纳新元素
self.root.resizable(False, False)
# 检查管理员权限
if not is_admin():
messagebox.showwarning(
"权限提示",
"启动器需要管理员权限来运行ODD程序。\n请允许UAC提示以继续。"
)
run_as_admin()
sys.exit(0)
# 初始化验证状态
self.auth_data = None
self.is_authenticated = False
self.device_id = get_device_id() # 获取设备ID
# 创建UI
self.create_widgets()
# 初始化路径
self.base_dir = Path(os.getcwd())
self.update_dir = self.base_dir / UPDATE_PATH
self.version_file = self.base_dir / VERSION_FILE
self.bat_file = self.base_dir / BAT_FILE
self.odd_bat_file = self.base_dir / ODD_BAT_FILE
# 加载本地版本信息
self.local_version = self.load_local_version()
# 显示卡密输入窗口
self.show_auth_window()
def create_widgets(self):
# 标题
title_frame = tk.Frame(self.root)
title_frame.pack(pady=10)
tk.Label(title_frame, text="maimai启动器", font=("Arial", 16, "bold")).pack()
# 权限提示
tk.Label(
title_frame,
text="(已获得管理员权限)",
font=("Arial", 8),
fg="green"
).pack()
# 验证状态
self.auth_status = tk.StringVar(value="请输入卡密进行验证")
auth_label = tk.Label(self.root, textvariable=self.auth_status, font=("Arial", 10), fg="blue")
auth_label.pack(pady=5)
# 版本信息
self.version_label = tk.Label(self.root, text="版本: 加载中...", font=("Arial", 10))
self.version_label.pack(pady=5)
# 进度条
progress_frame = tk.Frame(self.root)
progress_frame.pack(fill=tk.X, padx=20, pady=10)
self.progress = ttk.Progressbar(progress_frame, orient=tk.HORIZONTAL, length=500, mode='determinate')
self.progress.pack()
# 状态信息
self.status_var = tk.StringVar(value="等待验证...")
status_label = tk.Label(self.root, textvariable=self.status_var, font=("Arial", 10))
status_label.pack(pady=5)
# 按钮
button_frame = tk.Frame(self.root)
button_frame.pack(pady=10)
# 第一行按钮
button_row1 = tk.Frame(button_frame)
button_row1.pack(pady=5)
self.start_btn = tk.Button(button_row1, text="启动游戏", width=15,
command=self.start_game, state=tk.DISABLED)
self.start_btn.pack(side=tk.LEFT, padx=10)
self.odd_btn = tk.Button(button_row1, text="启动ODD", width=15,
command=self.start_odd, state=tk.DISABLED)
self.odd_btn.pack(side=tk.LEFT, padx=10)
# 第二行按钮
button_row2 = tk.Frame(button_frame)
button_row2.pack(pady=5)
self.update_btn = tk.Button(button_row2, text="强制更新", width=15,
command=self.force_update, state=tk.DISABLED)
self.update_btn.pack(side=tk.LEFT, padx=10)
self.logout_btn = tk.Button(button_row2, text="查看日志", width=15,
command=self.show_logs, state=tk.DISABLED)
self.logout_btn.pack(side=tk.LEFT, padx=10)
# 第三行按钮 - 网络验证相关
button_row3 = tk.Frame(button_frame)
button_row3.pack(pady=5)
self.buy_btn = tk.Button(button_row3, text="购买卡密", width=15,
command=self.open_buy_page)
self.buy_btn.pack(side=tk.LEFT, padx=10)
self.retry_btn = tk.Button(button_row3, text="重新验证", width=15,
command=self.show_auth_window)
self.retry_btn.pack(side=tk.LEFT, padx=10)
# 第四行 - VIP信息
self.vip_info = tk.StringVar(value="验证状态: 未验证")
vip_label = tk.Label(button_frame, textvariable=self.vip_info, font=("Arial", 10), fg="purple")
vip_label.pack(pady=10)
def show_auth_window(self):
"""显示卡密验证窗口"""
auth_win = tk.Toplevel(self.root)
auth_win.title("卡密验证")
auth_win.geometry("400x200")
auth_win.resizable(False, False)
auth_win.grab_set() # 模态窗口
# 居中显示
auth_win.update_idletasks()
width = auth_win.winfo_width()
height = auth_win.winfo_height()
x = (self.root.winfo_screenwidth() // 2) - (width // 2)
y = (self.root.winfo_screenheight() // 2) - (height // 2)
auth_win.geometry(f'+{x}+{y}')
# 内容框架
content_frame = tk.Frame(auth_win)
content_frame.pack(pady=20, padx=20, fill=tk.BOTH, expand=True)
# 设备ID显示
tk.Label(content_frame, text=f"设备ID: {self.device_id}", font=("Arial", 9)).pack(anchor="w", pady=5)
# 卡密输入
tk.Label(content_frame, text="请输入卡密:", font=("Arial", 10)).pack(anchor="w", pady=5)
self.kami_entry = tk.Entry(content_frame, width=30, font=("Arial", 10))
self.kami_entry.pack(fill=tk.X, pady=5)
self.kami_entry.focus_set()
# 状态标签
self.auth_result = tk.StringVar(value="")
result_label = tk.Label(content_frame, textvariable=self.auth_result, font=("Arial", 9), fg="red")
result_label.pack(pady=5)
# 按钮框架
btn_frame = tk.Frame(content_frame)
btn_frame.pack(pady=10)
# 验证按钮
auth_btn = tk.Button(btn_frame, text="验证卡密", width=15,
command=lambda: self.perform_network_authentication(auth_win))
auth_btn.pack(side=tk.LEFT, padx=10)
# 关闭按钮
close_btn = tk.Button(btn_frame, text="关闭", width=15,
command=auth_win.destroy)
close_btn.pack(side=tk.LEFT, padx=10)
# 绑定回车键
auth_win.bind('<Return>', lambda event: self.perform_network_authentication(auth_win))
def perform_network_authentication(self, auth_win=None):
"""执行网络验证"""
kami = self.kami_entry.get().strip()
if not kami:
self.auth_result.set("卡密不能为空")
return
self.auth_result.set("正在验证...")
# 禁用输入和按钮
self.kami_entry.config(state=tk.DISABLED)
if auth_win:
for widget in auth_win.winfo_children():
if isinstance(widget, tk.Button):
widget.config(state=tk.DISABLED)
threading.Thread(target=self._authentication_thread, args=(kami, auth_win), daemon=True).start()
def _authentication_thread(self, kami, auth_win=None):
"""验证线程 - 仅使用必需的四个参数"""
try:
self.auth_status.set("正在连接验证服务器...")
# 准备请求参数 - 只使用必需的四个参数
params = {
"api": "kmlogon", # 接口名称
"app": APP_ID, # 应用ID
"kami": kami, # 卡密
"markcode": self.device_id # 设备码
}
# 构建请求URL (使用urlencode确保正确编码)
url = f"{AUTH_API}?{urlencode(params)}"
print("请求URL:", url) # 调试输出
# 发送请求
with urllib.request.urlopen(url, timeout=15) as response:
raw_data = response.read().decode('utf-8')
# 打印原始响应用于调试
print("原始响应数据:", raw_data[:500] + ("..." if len(raw_data) > 500 else ""))
# 使用自定义JSON解析器
data = parse_json_response(raw_data)
# 检查返回状态
if data.get("code") != 200:
error_msg = self.get_error_message(data.get("code"))
self.auth_result.set(f"验证失败: {error_msg}")
self.auth_status.set(f"验证失败: {error_msg}")
return
# 解析返回数据
self.auth_data = data.get("msg", {})
# 更新VIP信息
vip_expiry = self.auth_data.get("vip", "未知")
self.vip_info.set(f"验证状态: 有效期至 {vip_expiry}")
# 验证成功
self.is_authenticated = True
self.auth_status.set("验证成功!")
self.activate_buttons()
# 关闭验证窗口
if auth_win:
auth_win.destroy()
# 检查更新
self.check_for_updates()
except urllib.error.HTTPError as e:
error_msg = f"HTTP错误: {e.code} {e.reason}"
self.auth_result.set(error_msg)
self.auth_status.set(error_msg)
except urllib.error.URLError as e:
error_msg = f"网络错误: {str(e.reason)}"
self.auth_result.set(error_msg)
self.auth_status.set(error_msg)
except json.JSONDecodeError as e:
error_msg = f"JSON解析错误: {str(e)}"
self.auth_result.set(error_msg)
self.auth_status.set(error_msg)
except Exception as e:
error_msg = f"验证失败: {str(e)}"
self.auth_result.set(error_msg)
self.auth_status.set(error_msg)
finally:
# 重新启用输入和按钮
if auth_win:
self.kami_entry.config(state=tk.NORMAL)
for widget in auth_win.winfo_children():
if isinstance(widget, tk.Button):
widget.config(state=tk.NORMAL)
def get_error_message(self, error_code):
"""根据错误码返回错误信息"""
error_messages = {
"101": "应用不存在",
"102": "应用已关闭",
"171": "接口维护中",
"172": "接口未添加或不存在",
"104": "签名为空",
"105": "数据过期",
"106": "签名有误",
"148": "卡密为空",
"149": "卡密不存在",
"151": "卡密禁用",
"169": "IP不一致"
}
return error_messages.get(str(error_code), f"未知错误 (代码: {error_code})")
def activate_buttons(self):
"""激活功能按钮"""
self.start_btn.config(state=tk.NORMAL)
self.odd_btn.config(state=tk.NORMAL)
self.update_btn.config(state=tk.NORMAL)
self.logout_btn.config(state=tk.NORMAL)
def open_buy_page(self):
"""打开购买页面"""
webbrowser.open("https://m.tb.cn/h.hYesG5B?tk=qva9Vs7587S") # 替换为实际的购买页面
def load_local_version(self):
"""加载本地版本信息"""
version_data = {"version": "0.0.0", "files": {}}
if self.version_file.exists():
try:
with open(self.version_file, 'r', encoding='utf-8') as f:
return json.load(f)
except:
pass
return version_data
def save_local_version(self, version_data):
"""保存本地版本信息"""
with open(self.version_file, 'w', encoding='utf-8') as f:
json.dump(version_data, f, indent=2)
def get_remote_version(self):
"""获取服务器版本信息"""
try:
with urllib.request.urlopen(f"{SERVER_URL}{VERSION_FILE}") as response:
raw_data = response.read().decode('utf-8')
return parse_json_response(raw_data)
except Exception as e:
self.status_var.set(f"无法获取服务器版本: {str(e)}")
return None
def check_for_updates(self):
"""检查更新"""
if not self.is_authenticated:
self.status_var.set("请先完成验证")
return
threading.Thread(target=self._check_updates_thread, daemon=True).start()
def _check_updates_thread(self):
"""更新检查线程"""
self.start_btn.config(state=tk.DISABLED)
self.update_btn.config(state=tk.DISABLED)
remote_version = self.get_remote_version()
if not remote_version:
self.status_var.set("连接服务器失败")
self.start_btn.config(state=tk.NORMAL)
self.update_btn.config(state=tk.NORMAL)
return
# 比较版本
if remote_version["version"] == self.local_version["version"]:
self.status_var.set("游戏已是最新版本")
self.version_label.config(text=f"版本: v{self.local_version['version']}")
self.start_btn.config(state=tk.NORMAL)
self.update_btn.config(state=tk.NORMAL)
else:
self.status_var.set(f"发现新版本 v{remote_version['version']}")
self.update_game(remote_version)
def update_game(self, remote_version=None):
"""执行更新"""
if not self.is_authenticated:
self.status_var.set("请先完成验证")
return
if not remote_version:
remote_version = self.get_remote_version()
if not remote_version:
self.status_var.set("无法获取更新信息")
return
self.start_btn.config(state=tk.DISABLED)
self.update_btn.config(state=tk.DISABLED)
self.odd_btn.config(state=tk.DISABLED)
threading.Thread(target=self._update_thread, args=(remote_version,), daemon=True).start()
def force_update(self):
"""强制更新"""
self.status_var.set("开始强制更新...")
self.update_game()
def _update_thread(self, remote_version):
"""更新线程"""
try:
# 创建更新目录
self.update_dir.mkdir(parents=True, exist_ok=True)
# 下载更新包
self.status_var.set("正在下载更新...")
zip_path = self.base_dir / UPDATE_ZIP
def update_progress(count, block_size, total_size):
percent = int(count * block_size * 100 / total_size)
self.progress['value'] = percent
self.status_var.set(f"下载中: {percent}%")
self.root.update_idletasks()
urllib.request.urlretrieve(
f"{SERVER_URL}{UPDATE_ZIP}",
zip_path,
reporthook=update_progress
)
# 解压更新包
self.status_var.set("正在解压文件...")
self.progress['value'] = 0
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
total_files = len(zip_ref.infolist())
for i, file in enumerate(zip_ref.infolist()):
if file.filename.endswith('/'):
continue
percent = int(i * 100 / total_files)
self.progress['value'] = percent
self.status_var.set(f"解压中: {file.filename}")
self.root.update_idletasks()
zip_ref.extract(file, self.update_dir)
# 更新版本信息
self.local_version = remote_version
self.save_local_version(remote_version)
self.status_var.set("更新完成!")
self.version_label.config(text=f"版本: v{self.local_version['version']}")
self.progress['value'] = 100
# 删除临时文件
if zip_path.exists():
os.remove(zip_path)
messagebox.showinfo("更新完成", "游戏已成功更新到最新版本!")
except Exception as e:
self.status_var.set(f"更新失败: {str(e)}")
messagebox.showerror("更新错误", f"更新过程中发生错误:\n{str(e)}")
finally:
self.start_btn.config(state=tk.NORMAL)
self.update_btn.config(state=tk.NORMAL)
self.odd_btn.config(state=tk.NORMAL)
def start_game(self):
"""启动游戏"""
if not self.is_authenticated:
messagebox.showwarning("未验证", "请先完成网络验证")
return
if not self.bat_file.exists():
messagebox.showerror("错误", f"找不到启动文件: {BAT_FILE}")
return
try:
bat_dir = os.path.dirname(self.bat_file)
subprocess.Popen(
[self.bat_file],
cwd=bat_dir,
shell=True
)
self.root.after(1000, self.root.destroy)
except Exception as e:
messagebox.showerror("启动失败", f"无法启动游戏: {str(e)}")
def start_odd(self):
"""启动ODD程序"""
if not self.is_authenticated:
messagebox.showwarning("未验证", "请先完成网络验证")
return
if not self.odd_bat_file.exists():
messagebox.showerror("错误", f"找不到ODD启动文件: {ODD_BAT_FILE}")
return
try:
# 使用runas命令确保管理员权限
bat_dir = os.path.dirname(self.odd_bat_file)
subprocess.Popen(
[self.odd_bat_file],
cwd=bat_dir,
shell=True
)
messagebox.showinfo("启动成功", "ODD程序正在运行中...")
except Exception as e:
messagebox.showerror("启动失败", f"无法启动ODD程序: {str(e)}")
def show_logs(self):
"""显示更新日志"""
if not self.is_authenticated:
messagebox.showwarning("未验证", "请先完成网络验证")
return
changelog = self.local_version.get("changelog", "暂无更新日志")
log_window = tk.Toplevel(self.root)
log_window.title("更新日志")
log_window.geometry("600x450")
text_frame = tk.Frame(log_window)
text_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
scrollbar = tk.Scrollbar(text_frame)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
text_area = tk.Text(text_frame, wrap=tk.WORD, yscrollcommand=scrollbar.set, font=("Arial", 10))
text_area.pack(fill=tk.BOTH, expand=True)
text_area.insert(tk.END, changelog)
text_area.config(state=tk.DISABLED)
scrollbar.config(command=text_area.yview)
if __name__ == "__main__":
# 检查管理员权限
if not is_admin():
# 创建临时窗口显示提示
root = tk.Tk()
root.withdraw() # 隐藏主窗口
messagebox.showinfo(
"权限提升",
"启动器需要管理员权限运行请允许UAC提示。"
)
run_as_admin()
root.destroy()
sys.exit(0)
root = tk.Tk()
app = GameLauncher(root)
root.mainloop()

1071
python/launcher2.py Normal file

File diff suppressed because it is too large Load Diff

1089
python/launcher3.py Normal file

File diff suppressed because it is too large Load Diff