first commit

This commit is contained in:
zhenye 2024-12-14 17:37:28 +08:00
commit 645f428d92
16 changed files with 7350 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.qmake.stash
build
release
debug
.qtc_clangd

522
Makefile Normal file
View File

@ -0,0 +1,522 @@
#############################################################################
# Makefile for building: cotton_double2
# Generated by qmake (3.1) (Qt 6.8.1)
# Project: cotton_double2.pro
# Template: app
# Command: F:\matrox\qt\6.8.1\msvc2022_64\bin\qmake.exe -o Makefile cotton_double2.pro -spec win32-msvc "CONFIG+=qtquickcompiler"
#############################################################################
MAKEFILE = Makefile
EQ = =
first: release
install: release-install
uninstall: release-uninstall
QMAKE = F:\matrox\qt\6.8.1\msvc2022_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 = F:\matrox\qt\6.8.1\msvc2022_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = F:\matrox\qt\6.8.1\msvc2022_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 =
SED = $(QMAKE) -install sed
MOVE = move
SUBTARGETS = \
release \
debug
release: $(MAKEFILE) FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release
release-make_first: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release
release-all: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release all
release-clean: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release uninstall
debug: $(MAKEFILE) FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug
debug-all: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: FORCE
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug uninstall
Makefile: cotton_double2.pro F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\win32-msvc\qmake.conf F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\spec_pre.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\windows-desktop.conf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\windows_vulkan_sdk.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\windows-vulkan.conf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\msvc-desktop.conf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\qconfig.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_ext_freetype.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_ext_libjpeg.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_ext_libpng.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_concurrent.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_concurrent_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_core.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_core_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_dbus.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_dbus_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_designer.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_designer_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_designercomponents_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_devicediscovery_support_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_entrypoint_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_example_icons_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_examples_asset_downloader_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_fb_support_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_freetype_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_gui.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_gui_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_harfbuzz_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_help.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_help_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttracker.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttracker_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttrackerqml.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttrackerqml_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_jpeg_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsanimation.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsanimation_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsfolderlistmodel.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsfolderlistmodel_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsplatform.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsplatform_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsqmlmodels.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsqmlmodels_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssettings.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssettings_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssharedimage.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssharedimage_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labswavefrontmesh.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labswavefrontmesh_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_linguist.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_network.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_network_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_opengl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_opengl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_openglwidgets.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_openglwidgets_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_packetprotocol_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_png_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_printsupport.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_printsupport_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qdoccatch_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qdoccatchconversions_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qdoccatchgenerators_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qml.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qml_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlassetdownloader.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlassetdownloader_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcompiler.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcompiler_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcore.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcore_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmldebug_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmldom_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlintegration.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlintegration_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmllocalstorage.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmllocalstorage_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlls_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmeta.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmeta_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmodels.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmodels_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlnetwork.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlnetwork_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltest.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltest_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltoolingsettings_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltyperegistrar_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlworkerscript.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlworkerscript_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlxmllistmodel.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlxmllistmodel_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quick.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quick_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basic.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basic_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basicstyleimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basicstyleimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fluentwinui3styleimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusion.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusion_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusionstyleimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusionstyleimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imagine.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imagine_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imaginestyleimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imaginestyleimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2impl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2impl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2material.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2material_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2materialstyleimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2materialstyleimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universal.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universal_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universalstyleimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universalstyleimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2windowsstyleimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2windowsstyleimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrolstestutilsprivate_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2quickimpl.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2quickimpl_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2utils.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2utils_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickeffects_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicklayouts.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicklayouts_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickparticles_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickshapes_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicktemplates2.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicktemplates2_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicktestutilsprivate_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickvectorimage.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickvectorimage_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickvectorimagegenerator_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickwidgets.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickwidgets_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_sql.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_sql_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svg.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svg_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svgwidgets.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svgwidgets_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_testlib.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_testlib_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_tools_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_uiplugin.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_uitools.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_uitools_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_widgets.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_widgets_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_xml.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_xml_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_zlib_private.pri \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qt_functions.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qt_config.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\win32-msvc\qmake.conf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\spec_post.prf \
.qmake.stash \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\exclusive_builds.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\msvc-version.conf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\toolchain.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\default_pre.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\default_pre.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\resolve_config.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\exclusive_builds_post.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\default_post.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qtquickcompiler.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\precompile_header.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\warn_on.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\permissions.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qt.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\resources_functions.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\resources.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\moc.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\opengl.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\uic.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qmake_use.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\file_copies.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\windows.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\testcase_targets.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\exceptions.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\yacc.prf \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\lex.prf \
cotton_double2.pro \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Widgets.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Gui.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Network.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Core.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6EntryPoint.prl \
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\build_pass.prf \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Widgetsd.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Guid.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Networkd.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Cored.prl \
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6EntryPointd.prl
$(QMAKE) -o Makefile cotton_double2.pro -spec win32-msvc "CONFIG+=qtquickcompiler"
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\spec_pre.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\windows-desktop.conf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\windows_vulkan_sdk.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\windows-vulkan.conf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\msvc-desktop.conf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\qconfig.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_ext_freetype.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_ext_libjpeg.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_ext_libpng.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_concurrent.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_concurrent_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_core.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_core_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_dbus.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_dbus_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_designer.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_designer_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_designercomponents_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_devicediscovery_support_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_entrypoint_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_example_icons_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_examples_asset_downloader_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_fb_support_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_freetype_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_gui.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_gui_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_harfbuzz_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_help.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_help_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttracker.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttracker_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttrackerqml.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_insighttrackerqml_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_jpeg_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsanimation.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsanimation_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsfolderlistmodel.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsfolderlistmodel_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsplatform.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsplatform_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsqmlmodels.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labsqmlmodels_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssettings.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssettings_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssharedimage.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labssharedimage_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labswavefrontmesh.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_labswavefrontmesh_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_linguist.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_network.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_network_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_opengl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_opengl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_openglwidgets.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_openglwidgets_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_packetprotocol_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_png_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_printsupport.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_printsupport_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qdoccatch_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qdoccatchconversions_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qdoccatchgenerators_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qml.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qml_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlassetdownloader.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlassetdownloader_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcompiler.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcompiler_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcore.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlcore_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmldebug_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmldom_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlintegration.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlintegration_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmllocalstorage.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmllocalstorage_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlls_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmeta.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmeta_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmodels.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlmodels_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlnetwork.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlnetwork_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltest.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltest_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltoolingsettings_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmltyperegistrar_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlworkerscript.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlworkerscript_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlxmllistmodel.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_qmlxmllistmodel_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quick.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quick_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basic.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basic_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basicstyleimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2basicstyleimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fluentwinui3styleimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusion.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusion_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusionstyleimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2fusionstyleimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imagine.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imagine_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imaginestyleimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2imaginestyleimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2impl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2impl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2material.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2material_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2materialstyleimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2materialstyleimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universal.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universal_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universalstyleimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2universalstyleimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2windowsstyleimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrols2windowsstyleimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickcontrolstestutilsprivate_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2quickimpl.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2quickimpl_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2utils.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickdialogs2utils_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickeffects_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicklayouts.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicklayouts_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickparticles_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickshapes_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicktemplates2.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicktemplates2_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quicktestutilsprivate_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickvectorimage.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickvectorimage_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickvectorimagegenerator_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickwidgets.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_quickwidgets_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_sql.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_sql_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svg.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svg_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svgwidgets.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_svgwidgets_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_testlib.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_testlib_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_tools_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_uiplugin.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_uitools.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_uitools_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_widgets.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_widgets_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_xml.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_xml_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\modules\qt_lib_zlib_private.pri:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qt_functions.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qt_config.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\win32-msvc\qmake.conf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\spec_post.prf:
.qmake.stash:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\exclusive_builds.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\common\msvc-version.conf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\toolchain.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\default_pre.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\default_pre.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\resolve_config.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\exclusive_builds_post.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\default_post.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qtquickcompiler.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\precompile_header.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\warn_on.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\permissions.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qt.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\resources_functions.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\resources.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\moc.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\opengl.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\uic.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\qmake_use.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\file_copies.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\win32\windows.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\testcase_targets.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\exceptions.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\yacc.prf:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\lex.prf:
cotton_double2.pro:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Widgets.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Gui.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Network.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Core.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6EntryPoint.prl:
F:\matrox\qt\6.8.1\msvc2022_64\mkspecs\features\build_pass.prf:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Widgetsd.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Guid.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Networkd.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6Cored.prl:
F:\matrox\qt\6.8.1\msvc2022_64\lib\Qt6EntryPointd.prl:
qmake: FORCE
@$(QMAKE) -o Makefile cotton_double2.pro -spec win32-msvc "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:
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release mocclean
debug-mocclean:
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug mocclean
mocclean: release-mocclean debug-mocclean
release-mocables:
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Release mocables
debug-mocables:
@set MAKEFLAGS=$(MAKEFLAGS)
$(MAKE) -f $(MAKEFILE).Debug mocables
mocables: release-mocables debug-mocables
check: first
benchmark: first
FORCE:
$(MAKEFILE).Release: Makefile
$(MAKEFILE).Debug: Makefile

1852
Makefile.Debug Normal file

File diff suppressed because one or more lines are too long

1851
Makefile.Release Normal file

File diff suppressed because one or more lines are too long

1297
camera.cpp Normal file

File diff suppressed because it is too large Load Diff

111
camera.h Normal file
View File

@ -0,0 +1,111 @@
#ifndef CAMERA_H
#define CAMERA_H
#include <QObject>
#include <Mil.h>
#include <QImage>
#include <QQueue>
#include <QDebug>
#include <QString>
#include <map>
#include <string>
#include <chrono>
#include <iostream>
#include <vector>
#include <fstream>
#include"onnxrunner.h"
#include <sstream>
#include <opencv2/opencv.hpp>
#include <QTcpSocket>
#include <QTcpServer>
std::vector<std::vector<uint8_t>> generateMaskFromImage(const MIL_ID& inputImage, int widthBlocks, int heightBlocks, int thresholds);
std::vector<std::vector<uint8_t>> generateMaskFromImage2(const cv::Mat& image, int widthBlocks, int heightBlocks, int thresholds);
std::vector<std::vector<uint8_t>> expandArray(const std::vector<std::vector<uint8_t>>& array, int newCols) ;
void VectorToImg(const std::vector<std::vector<uint8_t>>& array, const std::string& image_path);
cv::Mat mil2mat(MIL_ID mil_img);
void convert_to_uint8(const MIL_ID& input_img, MIL_ID& output_img);
std::vector<std::vector<uint8_t>> generateMask(
const MIL_ID& inputImg,
int outputWidth,
int outputHeight,
int sizeThreshold,
int ignoreSide
);
using namespace std;
using namespace cv;
class camera
{
public:
camera();
};
bool iniLowMac();
bool iniCamera();
bool iniColor();
bool iniOnnx();
void Start_camera();
bool DestoryCamera();
bool DestoryLowMac();
extern int SaveImg_Flag;
MIL_INT MFTYPE ProcessingFunction0(MIL_INT HookType, MIL_ID HookId, void* HookDataPtr);
MIL_INT MFTYPE ProcessingFunction1(MIL_INT HookType, MIL_ID HookId, void* HookDataPtr);
//图像处理
std::vector<int> psLabToOpenCVLab(const std::vector<int>& lab_ps);
std::vector<int> opencvLabToPsLab(const std::vector<int>& lab_cv);
std::unordered_map<std::string, int> loadConfig(const std::string& filename);
void lab_process(const MIL_ID& inputImage, MIL_ID& outputImageLab, const std::map<std::string, int>& params);
void hsv_process(const MIL_ID& inputImage, MIL_ID& outputImageHSV, const std::map<std::string, int>& params);
void lab_process_raw(const MIL_ID& inputImage, MIL_ID& outputImageLab, const std::map<std::string, int>& params,const std::vector<std::string>& color_vector);
void high_sat_detect(const MIL_ID& inputImage, MIL_ID& outputImage, const std::map<std::string, int>& params);
extern std::map<std::string, int> params;
void read_params_from_file(const std::string& filename, std::map<std::string, int>& params) ;
pair<vector<vector<uint8_t>>, vector<vector<uint8_t>>> generateMaskWithTail(
const MIL_ID& inputImg,
const vector<vector<uint8_t>>& tail,
int outputWidth,
int outputHeight,
int sizeThreshold,
int rowRange,
int ignoreSide
);
//下位机通讯
extern QTcpServer* server_to_lowermachine;
extern QTcpSocket* lower_machine;
extern bool volatile is_running;
bool get_valve_data(std::vector<std::vector<uint8_t>> mask );
#endif // CAMERA_H

36
cotton_double2.pro Normal file
View File

@ -0,0 +1,36 @@
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
camera.cpp \
main.cpp \
onnxrunner.cpp \
widget.cpp
HEADERS += \
camera.h \
onnxrunner.h \
widget.h
FORMS += \
widget.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
INCLUDEPATH += C:/Users/Pc/Desktop/cotton_double2/Include
DEPENDPATH += C:/Users/Pc/Desktop/cotton_double2/Include
LIBS += -LC:/Users/Pc/Desktop/cotton_double2/LIB -lmil
LIBS += -LC:/Users/Pc/Desktop/cotton_double2/LIB -lMilim
INCLUDEPATH += F:/matrox/opencv/build/include
LIBS += F:/matrox/opencv/build/x64/vc16/lib/opencv*.lib

271
cotton_double2.pro.user Normal file
View File

@ -0,0 +1,271 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 15.0.0, 2024-12-14T12:49:17. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{c7275aa8-e706-4136-81d8-373ad7a90808}</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.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</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">12</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="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.8.1 MSVC2022 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.8.1 MSVC2022 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.681.win64_msvc2022_64_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">C:\Users\Pc\Desktop\cotton_double2 (2)\cotton_double2\cotton_double2\build\Desktop_Qt_6_8_1_MSVC2022_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Pc/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2/build/Desktop_Qt_6_8_1_MSVC2022_64bit-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="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Pc\Desktop\cotton_double2\cotton_double2\cotton_double2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Pc/Desktop/cotton_double2/cotton_double2/cotton_double2</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="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\Pc\Desktop\cotton_double2 (2)\cotton_double2\cotton_double2\build\Desktop_Qt_6_8_1_MSVC2022_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/Pc/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2/build/Desktop_Qt_6_8_1_MSVC2022_64bit-Profile</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">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="SeparateDebugInfo">0</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">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">cotton_double22</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/Pc/Desktop/cotton_double2/cotton_double2/cotton_double2/cotton_double2.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">C:/Users/Pc/Desktop/cotton_double2/cotton_double2/cotton_double2</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,270 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 14.0.0, 2024-12-09T16:20:34. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{bb734039-10ae-42d9-a9aa-03342b10b7d4}</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.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</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.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">4</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="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.5.3 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.5.3 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.653.win64_msvc2019_64_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">C:\Users\admin\Desktop\cotton_double2 (2)\cotton_double2\cotton_double2\build\Desktop_Qt_6_5_3_MSVC2019_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/admin/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2/build/Desktop_Qt_6_5_3_MSVC2019_64bit-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">true</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="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\admin\Desktop\cotton_double2 (2)\cotton_double2\cotton_double2</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/admin/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2/build/Desktop_Qt_6_5_3_MSVC2019_64bit-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="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\admin\Desktop\cotton_double2 (2)\cotton_double2\cotton_double2\build\Desktop_Qt_6_5_3_MSVC2019_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/admin/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2/build/Desktop_Qt_6_5_3_MSVC2019_64bit-Profile</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">true</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">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="SeparateDebugInfo">0</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">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:C:/Users/admin/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2/cotton_double2.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/admin/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2/cotton_double2.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">C:/Users/admin/Desktop/cotton_double2 (2)/cotton_double2/cotton_double2</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>

18
main.cpp Normal file
View File

@ -0,0 +1,18 @@
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
// // 调用 iniLowMac 函数初始化与下位机的连接
// if (!iniLowMac()) {
// qDebug() << "Failed to initialize connection.";
// return -1;
// }
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}

160
onnxrunner.cpp Normal file
View File

@ -0,0 +1,160 @@
#include "onnxrunner.h"
#include<Qdebug>
// Timer class implementation
Timer::Timer() : start_time(std::chrono::high_resolution_clock::now()) {}
void Timer::restart() {
start_time = std::chrono::high_resolution_clock::now();
}
void Timer::printElapsedTime(const std::string& message) {
auto end_time = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> elapsed = end_time - start_time;
std::cout << message << ": " << elapsed.count() << " seconds" << std::endl;
start_time = end_time;
}
// Resize and pad input image
cv::Mat ONNXRunner::resizeAndPad(const cv::Mat& image, int targetWidth, int targetHeight, int& padTop, int& padLeft, float& scale, const cv::Scalar& padColor) {
int originalWidth = image.cols;
int originalHeight = image.rows;
scale = std::min((float)targetWidth / originalWidth, (float)targetHeight / originalHeight);
int newWidth = static_cast<int>(originalWidth * scale);
int newHeight = static_cast<int>(originalHeight * scale);
cv::Mat resizedImage;
cv::resize(image, resizedImage, cv::Size(newWidth, newHeight));
padTop = (targetHeight - newHeight) / 2;
int padBottom = targetHeight - newHeight - padTop;
padLeft = (targetWidth - newWidth) / 2;
int padRight = targetWidth - newWidth - padLeft;
cv::Mat paddedImage;
cv::copyMakeBorder(resizedImage, paddedImage, padTop, padBottom, padLeft, padRight, cv::BORDER_CONSTANT, padColor);
return paddedImage;
}
// Create detection mask
cv::Mat ONNXRunner::createDetectionMask(const cv::Mat& originalImage, const std::vector<Detection>& detections, float scale, int padTop, int padLeft) {
cv::Mat mask = cv::Mat::zeros(originalImage.size(), CV_8UC1); // Single channel mask
for (const auto& detection : detections) {
int x = static_cast<int>((detection.box.x - padLeft) / scale);
int y = static_cast<int>((detection.box.y - padTop) / scale);
int w = static_cast<int>(detection.box.width / scale);
int h = static_cast<int>(detection.box.height / scale);
x = std::max(0, std::min(x, originalImage.cols - 1));
y = std::max(0, std::min(y, originalImage.rows - 1));
w = std::min(w, originalImage.cols - x);
h = std::min(h, originalImage.rows - y);
cv::rectangle(mask, cv::Rect(x, y, w, h), cv::Scalar(255), cv::FILLED); // White color for detections
}
return mask;
}
// Load the ONNX model
cv::dnn::Net ONNXRunner::loadModel(const std::string& modelPath) {
cv::dnn::Net net = cv::dnn::readNetFromONNX(modelPath);
net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA); // Use CUDA backend
net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA); // Run on GPU
return net;
}
// Preprocess image for model input
cv::Mat ONNXRunner::preprocessImage(const cv::Mat& image, cv::dnn::Net& net, int& padTop, int& padLeft, float& scale) const {
cv::Scalar padColor(128, 128, 128); // Gray padding
cv::Mat inputImage = resizeAndPad(image, INPUT_WIDTH, INPUT_HEIGHT, padTop, padLeft, scale, padColor);
cv::Mat blob = cv::dnn::blobFromImage(inputImage, 1 / 255.0, cv::Size(INPUT_WIDTH, INPUT_HEIGHT), cv::Scalar(0, 0, 0), true, false);
net.setInput(blob);
return inputImage;
}
// Perform inference on the input image
std::vector<Detection> ONNXRunner::performInference(cv::dnn::Net& net, const cv::Mat& inputImage) const {
std::vector<Detection> detections;
cv::Mat output = net.forward();
float* data = (float*)output.data;
for (int i = 0; i < 25200; ++i) {
float confidence = data[i * 6 + 4];
if (confidence >= CONFIDENCE_THRESHOLD) {
float cx = data[i * 6];
float cy = data[i * 6 + 1];
float w = data[i * 6 + 2];
float h = data[i * 6 + 3];
cx = cx * inputImage.cols / INPUT_WIDTH;
cy = cy * inputImage.rows / INPUT_HEIGHT;
w = w * inputImage.cols / INPUT_WIDTH;
h = h * inputImage.rows / INPUT_HEIGHT;
int left = static_cast<int>(cx - w / 2);
int top = static_cast<int>(cy - h / 2);
int width = static_cast<int>(w);
int height = static_cast<int>(h);
left = std::max(0, std::min(left, inputImage.cols - 1));
top = std::max(0, std::min(top, inputImage.rows - 1));
width = std::min(width, inputImage.cols - left);
height = std::min(height, inputImage.rows - top);
detections.push_back({cv::Rect(left, top, width, height), confidence});
}
}
return detections;
}
// Apply Non-Maximum Suppression
std::vector<Detection> ONNXRunner::applyNMS(std::vector<Detection>& detections) const {
std::vector<int> indices;
std::vector<cv::Rect> boxes;
std::vector<float> scores;
for (const auto& detection : detections) {
boxes.push_back(detection.box);
scores.push_back(detection.confidence);
}
cv::dnn::NMSBoxes(boxes, scores, CONFIDENCE_THRESHOLD, NMS_THRESHOLD, indices);
std::vector<Detection> finalDetections;
for (int idx : indices) {
finalDetections.push_back(detections[idx]);
}
return finalDetections;
}
void ONNXRunner::load(const std::string& modelPath) {
this->net = ONNXRunner::loadModel(modelPath);
// 创建一个空的输入矩阵作为预热数据(假定模型输入是 RGB 图像)
cv::Mat dummyInput = cv::Mat::zeros(INPUT_HEIGHT, INPUT_WIDTH, CV_8UC3); // 640x640 的全零矩阵
// 调用 predict 方法进行预热
this->predict(dummyInput);
}; // Load the model
std::vector<Detection> ONNXRunner::predict(const cv::Mat &image) {
cv::dnn::Net net = this->net;
cv::Mat inputImage = preprocessImage(image, net, this->pad_top, this->pad_left, this->scale);
// Perform inference
std::vector<Detection> detections = performInference(net, inputImage);
// Apply Non-Maximum Suppression
std::vector<Detection> finalDetections = applyNMS(detections);
return finalDetections;
}
cv::Mat ONNXRunner::postProcess(const std::vector<Detection>& detections, const cv::Mat& image) const {
// Create and show the detection mask
cv::Mat detectionMask = ONNXRunner::createDetectionMask(image, detections, this->scale, this->pad_top, this->pad_left);
return detectionMask;
}

56
onnxrunner.h Normal file
View File

@ -0,0 +1,56 @@
#ifndef ONNXRUNNER_H
#define ONNXRUNNER_H
#include <opencv2/opencv.hpp>
#include <opencv2/dnn/dnn.hpp>
#include <iostream>
#include <vector>
#include <chrono>
// const float CONFIDENCE_THRESHOLD = 0.2;
// const float NMS_THRESHOLD = 0.2;
// const int INPUT_WIDTH = 640;
// const int INPUT_HEIGHT = 640;
struct Detection {
cv::Rect box;
float confidence;
};
// Class to measure elapsed time
class Timer {
public:
Timer();
void restart();
void printElapsedTime(const std::string& message);
private:
std::chrono::high_resolution_clock::time_point start_time;
};
class ONNXRunner {
public:
ONNXRunner() = default; // Default constructor
void load(const std::string& modelPath); // Load the model
std::vector<Detection> predict(const cv::Mat& image); // Predict and generate results
cv::Mat postProcess(const std::vector<Detection> &detections, const cv::Mat &image) const;
cv::dnn::Net net;
int pad_top, pad_left;
float scale;
// Function prototypes
static cv::Mat resizeAndPad(const cv::Mat& image, int targetWidth, int targetHeight, int& padTop, int& padLeft, float& scale, const cv::Scalar& padColor);
static cv::Mat createDetectionMask(const cv::Mat& originalImage, const std::vector<Detection>& detections, float scale, int padTop, int padLeft);
static cv::dnn::Net loadModel(const std::string& modelPath);
cv::Mat preprocessImage(const cv::Mat& image, cv::dnn::Net& net, int& padTop, int& padLeft, float& scale) const;
std::vector<Detection> performInference(cv::dnn::Net& net, const cv::Mat& inputImage) const;
std::vector<Detection> applyNMS(std::vector<Detection>& detections) const;
// Constants
const float CONFIDENCE_THRESHOLD = 0.2f;
const float NMS_THRESHOLD = 0.2f;
const int INPUT_WIDTH = 640;
const int INPUT_HEIGHT = 640;
};
#endif // ONNXRUNNER_H

248
ui_widget.h Normal file
View File

@ -0,0 +1,248 @@
/********************************************************************************
** Form generated from reading UI file 'widget.ui'
**
** Created by: Qt User Interface Compiler version 6.5.3
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_WIDGET_H
#define UI_WIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpinBox>
#include <QtWidgets/QTabWidget>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_Widget
{
public:
QTabWidget *tabWidget;
QWidget *tab;
QPushButton *pushButton;
QPushButton *pushButton_2;
QPushButton *btn_goto_sort;
QPushButton *btn_0to3;
QGroupBox *groupBox;
QLabel *label;
QLabel *lab_lowermachine_isconnect;
QPushButton *btn_reconnect;
QWidget *tab_2;
QLabel *lab_info;
QPushButton *btn_start;
QPushButton *btn_stop;
QWidget *tab_3;
QLabel *label_title_3;
QGroupBox *groupBox_4;
QLabel *label_delaytime;
QLabel *label_encoder;
QLabel *label_encoder_2;
QSpinBox *spinbox_delaytime;
QSpinBox *spinbox_encoder;
QSpinBox *spinbox_valve;
QPushButton *btn_set_lower;
QPushButton *btn_exit;
QWidget *tab_4;
QLabel *label_title_4;
QGroupBox *groupBox_2;
QLabel *label_explosure_2;
QSpinBox *spinBox_channel;
QPushButton *btn_send_single;
QPushButton *btn_stop_single;
QGroupBox *groupBox_3;
QPushButton *btn_test_single;
QPushButton *btn_stop_test;
void setupUi(QWidget *Widget)
{
if (Widget->objectName().isEmpty())
Widget->setObjectName("Widget");
Widget->resize(800, 600);
tabWidget = new QTabWidget(Widget);
tabWidget->setObjectName("tabWidget");
tabWidget->setGeometry(QRect(0, 0, 801, 601));
tab = new QWidget();
tab->setObjectName("tab");
pushButton = new QPushButton(tab);
pushButton->setObjectName("pushButton");
pushButton->setGeometry(QRect(100, 130, 201, 61));
pushButton_2 = new QPushButton(tab);
pushButton_2->setObjectName("pushButton_2");
pushButton_2->setGeometry(QRect(400, 120, 181, 71));
btn_goto_sort = new QPushButton(tab);
btn_goto_sort->setObjectName("btn_goto_sort");
btn_goto_sort->setGeometry(QRect(120, 290, 121, 61));
btn_0to3 = new QPushButton(tab);
btn_0to3->setObjectName("btn_0to3");
btn_0to3->setGeometry(QRect(410, 290, 141, 61));
groupBox = new QGroupBox(tab);
groupBox->setObjectName("groupBox");
groupBox->setGeometry(QRect(160, 390, 401, 131));
label = new QLabel(groupBox);
label->setObjectName("label");
label->setGeometry(QRect(40, 70, 41, 16));
lab_lowermachine_isconnect = new QLabel(groupBox);
lab_lowermachine_isconnect->setObjectName("lab_lowermachine_isconnect");
lab_lowermachine_isconnect->setGeometry(QRect(90, 60, 31, 31));
QPalette palette;
QBrush brush(QColor(237, 212, 0, 255));
brush.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::Button, brush);
palette.setBrush(QPalette::Active, QPalette::Base, brush);
palette.setBrush(QPalette::Active, QPalette::Window, brush);
QBrush brush1(QColor(246, 233, 127, 255));
brush1.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::AlternateBase, brush1);
palette.setBrush(QPalette::Inactive, QPalette::Button, brush);
palette.setBrush(QPalette::Inactive, QPalette::Base, brush);
palette.setBrush(QPalette::Inactive, QPalette::Window, brush);
palette.setBrush(QPalette::Inactive, QPalette::AlternateBase, brush1);
palette.setBrush(QPalette::Disabled, QPalette::Button, brush);
palette.setBrush(QPalette::Disabled, QPalette::Base, brush);
palette.setBrush(QPalette::Disabled, QPalette::Window, brush);
palette.setBrush(QPalette::Disabled, QPalette::AlternateBase, brush1);
lab_lowermachine_isconnect->setPalette(palette);
btn_reconnect = new QPushButton(tab);
btn_reconnect->setObjectName("btn_reconnect");
btn_reconnect->setGeometry(QRect(590, 440, 101, 41));
tabWidget->addTab(tab, QString());
tab_2 = new QWidget();
tab_2->setObjectName("tab_2");
lab_info = new QLabel(tab_2);
lab_info->setObjectName("lab_info");
lab_info->setGeometry(QRect(140, 200, 251, 81));
QFont font;
font.setPointSize(28);
lab_info->setFont(font);
btn_start = new QPushButton(tab_2);
btn_start->setObjectName("btn_start");
btn_start->setGeometry(QRect(180, 370, 101, 41));
btn_stop = new QPushButton(tab_2);
btn_stop->setObjectName("btn_stop");
btn_stop->setGeometry(QRect(320, 370, 101, 41));
tabWidget->addTab(tab_2, QString());
tab_3 = new QWidget();
tab_3->setObjectName("tab_3");
label_title_3 = new QLabel(tab_3);
label_title_3->setObjectName("label_title_3");
label_title_3->setGeometry(QRect(0, 10, 171, 41));
QFont font1;
font1.setPointSize(20);
label_title_3->setFont(font1);
groupBox_4 = new QGroupBox(tab_3);
groupBox_4->setObjectName("groupBox_4");
groupBox_4->setGeometry(QRect(10, 60, 341, 191));
label_delaytime = new QLabel(groupBox_4);
label_delaytime->setObjectName("label_delaytime");
label_delaytime->setGeometry(QRect(40, 40, 53, 15));
label_encoder = new QLabel(groupBox_4);
label_encoder->setObjectName("label_encoder");
label_encoder->setGeometry(QRect(40, 80, 81, 16));
label_encoder_2 = new QLabel(groupBox_4);
label_encoder_2->setObjectName("label_encoder_2");
label_encoder_2->setGeometry(QRect(40, 120, 71, 16));
spinbox_delaytime = new QSpinBox(groupBox_4);
spinbox_delaytime->setObjectName("spinbox_delaytime");
spinbox_delaytime->setGeometry(QRect(120, 40, 81, 22));
spinbox_encoder = new QSpinBox(groupBox_4);
spinbox_encoder->setObjectName("spinbox_encoder");
spinbox_encoder->setGeometry(QRect(120, 80, 81, 22));
spinbox_valve = new QSpinBox(groupBox_4);
spinbox_valve->setObjectName("spinbox_valve");
spinbox_valve->setGeometry(QRect(120, 120, 81, 22));
btn_set_lower = new QPushButton(groupBox_4);
btn_set_lower->setObjectName("btn_set_lower");
btn_set_lower->setGeometry(QRect(250, 160, 61, 23));
btn_exit = new QPushButton(tab_3);
btn_exit->setObjectName("btn_exit");
btn_exit->setGeometry(QRect(660, 490, 75, 23));
tabWidget->addTab(tab_3, QString());
tab_4 = new QWidget();
tab_4->setObjectName("tab_4");
label_title_4 = new QLabel(tab_4);
label_title_4->setObjectName("label_title_4");
label_title_4->setGeometry(QRect(50, 30, 91, 21));
groupBox_2 = new QGroupBox(tab_4);
groupBox_2->setObjectName("groupBox_2");
groupBox_2->setGeometry(QRect(110, 120, 331, 91));
label_explosure_2 = new QLabel(groupBox_2);
label_explosure_2->setObjectName("label_explosure_2");
label_explosure_2->setGeometry(QRect(30, 40, 31, 16));
spinBox_channel = new QSpinBox(groupBox_2);
spinBox_channel->setObjectName("spinBox_channel");
spinBox_channel->setGeometry(QRect(60, 40, 42, 22));
btn_send_single = new QPushButton(groupBox_2);
btn_send_single->setObjectName("btn_send_single");
btn_send_single->setGeometry(QRect(150, 40, 75, 23));
btn_stop_single = new QPushButton(groupBox_2);
btn_stop_single->setObjectName("btn_stop_single");
btn_stop_single->setGeometry(QRect(240, 40, 75, 23));
groupBox_3 = new QGroupBox(tab_4);
groupBox_3->setObjectName("groupBox_3");
groupBox_3->setGeometry(QRect(110, 270, 331, 91));
btn_test_single = new QPushButton(groupBox_3);
btn_test_single->setObjectName("btn_test_single");
btn_test_single->setGeometry(QRect(60, 40, 75, 23));
btn_stop_test = new QPushButton(groupBox_3);
btn_stop_test->setObjectName("btn_stop_test");
btn_stop_test->setGeometry(QRect(210, 40, 75, 23));
tabWidget->addTab(tab_4, QString());
retranslateUi(Widget);
tabWidget->setCurrentIndex(0);
QMetaObject::connectSlotsByName(Widget);
} // setupUi
void retranslateUi(QWidget *Widget)
{
Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr));
pushButton->setText(QCoreApplication::translate("Widget", "\345\274\200\345\247\213", nullptr));
pushButton_2->setText(QCoreApplication::translate("Widget", "\344\277\235\345\255\230\345\233\276\347\211\207", nullptr));
btn_goto_sort->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242", nullptr));
btn_0to3->setText(QCoreApplication::translate("Widget", "\345\226\267\351\230\200\346\265\213\350\257\225", nullptr));
groupBox->setTitle(QCoreApplication::translate("Widget", "\350\277\236\346\216\245\347\212\266\346\200\201\357\274\232", nullptr));
label->setText(QCoreApplication::translate("Widget", "\344\270\213\344\275\215\346\234\272", nullptr));
lab_lowermachine_isconnect->setText(QString());
btn_reconnect->setText(QCoreApplication::translate("Widget", "\351\207\215\346\226\260\350\277\236\346\216\245", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab), QCoreApplication::translate("Widget", "Tab 1", nullptr));
lab_info->setText(QCoreApplication::translate("Widget", "\345\207\206\345\244\207\344\270\255", nullptr));
btn_start->setText(QCoreApplication::translate("Widget", "\345\274\200\345\247\213\345\210\206\351\200\211", nullptr));
btn_stop->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242\345\210\206\351\200\211", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab_2), QCoreApplication::translate("Widget", "Tab 2", nullptr));
label_title_3->setText(QCoreApplication::translate("Widget", "\345\217\202\346\225\260\350\256\276\347\275\256\347\225\214\351\235\242", nullptr));
groupBox_4->setTitle(QCoreApplication::translate("Widget", "\344\270\213\344\275\215\346\234\272\345\217\202\346\225\260", nullptr));
label_delaytime->setText(QCoreApplication::translate("Widget", "\345\273\266\350\277\237\346\227\266\351\227\264", nullptr));
label_encoder->setText(QCoreApplication::translate("Widget", "\347\233\270\346\234\272\345\210\206\351\242\221\347\263\273\346\225\260", nullptr));
label_encoder_2->setText(QCoreApplication::translate("Widget", "\345\226\267\351\230\200\345\210\206\351\242\221\347\263\273\346\225\260", nullptr));
btn_set_lower->setText(QCoreApplication::translate("Widget", "\347\241\256\345\256\232", nullptr));
btn_exit->setText(QCoreApplication::translate("Widget", "\345\205\263\346\234\272", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab_3), QCoreApplication::translate("Widget", "Tab 3", nullptr));
label_title_4->setText(QCoreApplication::translate("Widget", "\345\226\267\351\230\200\346\265\213\350\257\225\347\225\214\351\235\242", nullptr));
groupBox_2->setTitle(QCoreApplication::translate("Widget", "\346\211\213\345\212\250\345\226\267\351\230\200\346\265\213\350\257\225", nullptr));
label_explosure_2->setText(QCoreApplication::translate("Widget", "\351\200\232\351\201\223", nullptr));
btn_send_single->setText(QCoreApplication::translate("Widget", "\346\265\213\350\257\225", nullptr));
btn_stop_single->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242\346\265\213\350\257\225", nullptr));
groupBox_3->setTitle(QCoreApplication::translate("Widget", "\350\207\252\345\212\250\345\226\267\351\230\200\346\265\213\350\257\225", nullptr));
btn_test_single->setText(QCoreApplication::translate("Widget", "\345\274\200\345\247\213\346\265\213\350\257\225", nullptr));
btn_stop_test->setText(QCoreApplication::translate("Widget", "\345\201\234\346\255\242\346\265\213\350\257\225", nullptr));
tabWidget->setTabText(tabWidget->indexOf(tab_4), QCoreApplication::translate("Widget", "Tab 4", nullptr));
} // retranslateUi
};
namespace Ui {
class Widget: public Ui_Widget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_WIDGET_H

60
widget.cpp Normal file
View File

@ -0,0 +1,60 @@
#include "widget.h"
#include "ui_widget.h"
#include <iostream>
#include <QTcpSocket>
#include <QPushButton>
#include <QTimer>
#include <QEventLoop>
#include <QElapsedTimer>
// #include <windows.h>
#include <QApplication>
#include <QLabel>
#include <QImage>
#include <QPixmap>
#include <QDateTime>
using namespace std;
int file_delay;
int file_encoder;
int file_valve;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
iniColor();
iniLowMac();
iniCamera();
}
Widget::~Widget()
{
// DestoryCamera();
}
void Widget::on_pushButton_clicked()
{
Start_camera();
}
void Widget::on_pushButton_2_clicked()
{
SaveImg_Flag = 1;
}
void Widget::on_btn_goto_sort_clicked()
{
DestoryCamera();
DestoryLowMac();
}

35
widget.h Normal file
View File

@ -0,0 +1,35 @@
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <camera.h>
#include <QTcpServer>
#include <QPushButton>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_btn_goto_sort_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H

558
widget.ui Normal file
View File

@ -0,0 +1,558 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QWidget" name="Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>Widget</string>
</property>
<widget class="QTabWidget" name="tabWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>601</height>
</rect>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>100</x>
<y>130</y>
<width>201</width>
<height>61</height>
</rect>
</property>
<property name="text">
<string>开始</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_2">
<property name="geometry">
<rect>
<x>400</x>
<y>120</y>
<width>181</width>
<height>71</height>
</rect>
</property>
<property name="text">
<string>保存图片</string>
</property>
</widget>
<widget class="QPushButton" name="btn_goto_sort">
<property name="geometry">
<rect>
<x>120</x>
<y>290</y>
<width>121</width>
<height>61</height>
</rect>
</property>
<property name="text">
<string>停止</string>
</property>
</widget>
<widget class="QPushButton" name="btn_0to3">
<property name="geometry">
<rect>
<x>410</x>
<y>290</y>
<width>141</width>
<height>61</height>
</rect>
</property>
<property name="text">
<string>喷阀测试</string>
</property>
</widget>
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>160</x>
<y>390</y>
<width>401</width>
<height>131</height>
</rect>
</property>
<property name="title">
<string>连接状态:</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>40</x>
<y>70</y>
<width>41</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>下位机</string>
</property>
</widget>
<widget class="QLabel" name="lab_lowermachine_isconnect">
<property name="geometry">
<rect>
<x>90</x>
<y>60</y>
<width>31</width>
<height>31</height>
</rect>
</property>
<property name="palette">
<palette>
<active>
<colorrole role="Button">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="AlternateBase">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>246</red>
<green>233</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="Button">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="AlternateBase">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>246</red>
<green>233</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="Button">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>237</red>
<green>212</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="AlternateBase">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>246</red>
<green>233</green>
<blue>127</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="text">
<string/>
</property>
</widget>
</widget>
<widget class="QPushButton" name="btn_reconnect">
<property name="geometry">
<rect>
<x>590</x>
<y>440</y>
<width>101</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>重新连接</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<widget class="QLabel" name="lab_info">
<property name="geometry">
<rect>
<x>140</x>
<y>200</y>
<width>251</width>
<height>81</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>28</pointsize>
</font>
</property>
<property name="text">
<string>准备中</string>
</property>
</widget>
<widget class="QPushButton" name="btn_start">
<property name="geometry">
<rect>
<x>180</x>
<y>370</y>
<width>101</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>开始分选</string>
</property>
</widget>
<widget class="QPushButton" name="btn_stop">
<property name="geometry">
<rect>
<x>320</x>
<y>370</y>
<width>101</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>停止分选</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Tab 3</string>
</attribute>
<widget class="QLabel" name="label_title_3">
<property name="geometry">
<rect>
<x>0</x>
<y>10</y>
<width>171</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>20</pointsize>
</font>
</property>
<property name="text">
<string>参数设置界面</string>
</property>
</widget>
<widget class="QGroupBox" name="groupBox_4">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>341</width>
<height>191</height>
</rect>
</property>
<property name="title">
<string>下位机参数</string>
</property>
<widget class="QLabel" name="label_delaytime">
<property name="geometry">
<rect>
<x>40</x>
<y>40</y>
<width>53</width>
<height>15</height>
</rect>
</property>
<property name="text">
<string>延迟时间</string>
</property>
</widget>
<widget class="QLabel" name="label_encoder">
<property name="geometry">
<rect>
<x>40</x>
<y>80</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>相机分频系数</string>
</property>
</widget>
<widget class="QLabel" name="label_encoder_2">
<property name="geometry">
<rect>
<x>40</x>
<y>120</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>喷阀分频系数</string>
</property>
</widget>
<widget class="QSpinBox" name="spinbox_delaytime">
<property name="geometry">
<rect>
<x>120</x>
<y>40</y>
<width>81</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QSpinBox" name="spinbox_encoder">
<property name="geometry">
<rect>
<x>120</x>
<y>80</y>
<width>81</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QSpinBox" name="spinbox_valve">
<property name="geometry">
<rect>
<x>120</x>
<y>120</y>
<width>81</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QPushButton" name="btn_set_lower">
<property name="geometry">
<rect>
<x>250</x>
<y>160</y>
<width>61</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>确定</string>
</property>
</widget>
</widget>
<widget class="QPushButton" name="btn_exit">
<property name="geometry">
<rect>
<x>660</x>
<y>490</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>关机</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Tab 4</string>
</attribute>
<widget class="QLabel" name="label_title_4">
<property name="geometry">
<rect>
<x>50</x>
<y>30</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>喷阀测试界面</string>
</property>
</widget>
<widget class="QGroupBox" name="groupBox_2">
<property name="geometry">
<rect>
<x>110</x>
<y>120</y>
<width>331</width>
<height>91</height>
</rect>
</property>
<property name="title">
<string>手动喷阀测试</string>
</property>
<widget class="QLabel" name="label_explosure_2">
<property name="geometry">
<rect>
<x>30</x>
<y>40</y>
<width>31</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>通道</string>
</property>
</widget>
<widget class="QSpinBox" name="spinBox_channel">
<property name="geometry">
<rect>
<x>60</x>
<y>40</y>
<width>42</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QPushButton" name="btn_send_single">
<property name="geometry">
<rect>
<x>150</x>
<y>40</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>测试</string>
</property>
</widget>
<widget class="QPushButton" name="btn_stop_single">
<property name="geometry">
<rect>
<x>240</x>
<y>40</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>停止测试</string>
</property>
</widget>
</widget>
<widget class="QGroupBox" name="groupBox_3">
<property name="geometry">
<rect>
<x>110</x>
<y>270</y>
<width>331</width>
<height>91</height>
</rect>
</property>
<property name="title">
<string>自动喷阀测试</string>
</property>
<widget class="QPushButton" name="btn_test_single">
<property name="geometry">
<rect>
<x>60</x>
<y>40</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>开始测试</string>
</property>
</widget>
<widget class="QPushButton" name="btn_stop_test">
<property name="geometry">
<rect>
<x>210</x>
<y>40</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>停止测试</string>
</property>
</widget>
</widget>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>