Compare commits

...

11 Commits

@ -1,415 +1,164 @@
#############################################################################
# Makefile for building: Demo2
# 这是用于构建名为 "Demo2" 项目的 Makefile 文件,下面说明了它是由 qmake 工具生成的相关信息
# Generated by qmake (3.1) (Qt 5.9.9)
# Project: ..\supermarket\Demo2.pro
# Project: ..\supermarket\Demo2.pro
# Template: app
# Command: D:\qt\5.9.9\mingw53_32\bin\qmake.exe -o Makefile ..\supermarket\Demo2.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
# Command: D:\qt\5.9.9\mingw53_32\bin\qmake.exe -o Makefile..\supermarket\Demo2.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
#############################################################################
# 定义变量 MAKEFILE其值为 "Makefile",通常代表这个 Makefile 自身的文件名(后续很多地方会基于此引用 Makefile
MAKEFILE = Makefile
# 定义默认的构建目标,这里 "first" 目标依赖于 "debug" 目标,意味着执行 "make first" 命令时会先执行 "debug" 相关构建操作
first: debug
# "install" 目标依赖于 "debug-install",可能用于在调试模式构建后进行安装相关操作
install: debug-install
# "uninstall" 目标依赖于 "debug-uninstall",用于在调试模式构建后执行卸载相关操作
uninstall: debug-uninstall
# 定义变量 QMAKE其值为 Qt 的 qmake 可执行文件的路径qmake 用于生成 Makefile 等构建相关配置
QMAKE = D:\qt\5.9.9\mingw53_32\bin\qmake.exe
# 定义变量 DEL_FILE用于删除文件的命令这里是 Windows 下的 "del" 命令
DEL_FILE = del
# 定义变量 CHK_DIR_EXISTS用于检查目录是否存在的命令这里使用的是 Windows 下的条件判断语句格式
CHK_DIR_EXISTS= if not exist
# 定义变量 MKDIR用于创建目录的命令对应 Windows 下的 "mkdir" 命令
MKDIR = mkdir
# 定义变量 COPY用于复制文件的命令这里使用的是 Windows 下带确认覆盖(/y 参数)的 "copy" 命令
COPY = copy /y
# 定义变量 COPY_FILE同样是用于复制文件的命令也是 "copy /y",功能和上面的 COPY 类似,可能在不同场景使用
COPY_FILE = copy /y
# 定义变量 COPY_DIR用于复制目录的命令使用的是 Windows 下带特定参数(/s 递归、/q 安静模式、/y 确认覆盖、/i 如果目标不存在则创建目录等)的 "xcopy" 命令
COPY_DIR = xcopy /s /q /y /i
# 定义变量 INSTALL_FILE用于安装文件的命令同样是 "copy /y",可能在安装文件到特定位置时使用
INSTALL_FILE = copy /y
# 定义变量 INSTALL_PROGRAM也是用于安装程序相关文件的命令同样为 "copy /y",可能针对可执行程序等的安装
INSTALL_PROGRAM = copy /y
# 定义变量 INSTALL_DIR用于安装目录的命令也是 "xcopy /s /q /y /i",功能类似 COPY_DIR在安装整个目录结构时使用
INSTALL_DIR = xcopy /s /q /y /i
# 定义变量 QINSTALL用于执行 Qt 特定的安装相关操作,调用 qmake 并带上 "-install qinstall" 参数
QINSTALL = D:\qt\5.9.9\mingw53_32\bin\qmake.exe -install qinstall
# 类似 QINSTALL不过这里多了 "-exe" 参数,可能针对可执行文件的 Qt 安装操作有特殊处理
QINSTALL_PROGRAM = D:\qt\5.9.9\mingw53_32\bin\qmake.exe -install qinstall -exe
# 再次定义 DEL_FILE和前面的重复定义可能后续代码修改等原因导致不过这里还是对应 "del" 命令用于删除文件
DEL_FILE = del
# 定义变量 SYMLINK用于创建符号链接的命令通过调用 qmake 并传递一些参数来实现创建链接的功能
SYMLINK = $(QMAKE) -install ln -f -s
# 定义变量 DEL_DIR用于删除目录的命令对应 Windows 下的 "rmdir" 命令
DEL_DIR = rmdir
# 定义变量 MOVE用于移动文件或目录的命令对应 Windows 下的 "move" 命令
MOVE = move
# 定义变量 SUBTARGETS它列出了一些子目标包括 "debug" 和 "release",后续很多构建相关的操作会基于这些子目标细分
SUBTARGETS = \
debug \
release
debug \
release
# "debug" 目标,它是一个伪目标(没有实际对应的文件生成),通过执行 "make -f $(MAKEFILE).Debug" 命令来构建调试版本相关内容
debug: FORCE
$(MAKE) -f $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug
# "debug-make_first" 目标,同样是执行调试版本下的 "make_first" 相关操作(具体看对应的 Makefile.Debug 文件中的定义)
debug-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug
# "debug-all" 目标,执行调试版本下的所有构建操作(由对应的 Makefile.Debug 文件中定义的 "all" 目标相关规则来执行)
debug-all: FORCE
$(MAKE) -f $(MAKEFILE).Debug all
$(MAKE) -f $(MAKEFILE).Debug all
# "debug-clean" 目标,用于清理调试版本构建产生的临时文件等(由 Makefile.Debug 中定义的 "clean" 目标相关规则执行)
debug-clean: FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
$(MAKE) -f $(MAKEFILE).Debug clean
# "debug-distclean" 目标,进行更彻底的清理,比如删除构建生成的文件以及 Makefile 等相关配置文件(同样依赖 Makefile.Debug 中的定义)
debug-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
$(MAKE) -f $(MAKEFILE).Debug distclean
# "debug-install" 目标,执行调试版本构建后的安装操作(由 Makefile.Debug 中相关安装规则来执行)
debug-install: FORCE
$(MAKE) -f $(MAKEFILE).Debug install
$(MAKE) -f $(MAKEFILE).Debug install
# "debug-uninstall" 目标,执行调试版本构建后的卸载操作(由 Makefile.Debug 中相关卸载规则来执行)
debug-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
$(MAKE) -f $(MAKEFILE).Debug uninstall
# "release" 目标,和 "debug" 目标类似,不过是用于构建发布版本,通过执行 "make -f $(MAKEFILE).Release" 命令来构建发布版本相关内容
release: FORCE
$(MAKE) -f $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release
# "release-make_first" 目标,执行发布版本下的 "make_first" 相关操作(具体看对应的 Makefile.Release 文件中的定义)
release-make_first: FORCE
$(MAKE) -f $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release
# "release-all" 目标,执行发布版本下的所有构建操作(由对应的 Makefile.Release 文件中定义的 "all" 目标相关规则来执行)
release-all: FORCE
$(MAKE) -f $(MAKEFILE).Release all
$(MAKE) -f $(MAKEFILE).Release all
# "release-clean" 目标,用于清理发布版本构建产生的临时文件等(由 Makefile.Release 中定义的 "clean" 目标相关规则执行)
release-clean: FORCE
$(MAKE) -f $(MAKEFILE).Release clean
$(MAKE) -f $(MAKEFILE).Release clean
# "release-distclean" 目标,进行更彻底的清理,比如删除构建生成的文件以及 Makefile 等相关配置文件(同样依赖 Makefile.Release 中的定义)
release-distclean: FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
$(MAKE) -f $(MAKEFILE).Release distclean
# "release-install" 目标,执行发布版本构建后的安装操作(由 Makefile.Release 中相关安装规则来执行)
release-install: FORCE
$(MAKE) -f $(MAKEFILE).Release install
$(MAKE) -f $(MAKEFILE).Release install
# "release-uninstall" 目标,执行发布版本构建后的卸载操作(由 Makefile.Release 中相关卸载规则来执行)
release-uninstall: FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall
Makefile: ../supermarket/Demo2.pro D:/qt/5.9.9/mingw53_32/mkspecs/win32-g++/qmake.conf D:/qt/5.9.9/mingw53_32/mkspecs/features/spec_pre.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/qdevice.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/features/device_config.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/sanitize.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/gcc-base.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/g++-base.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/angle.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/qconfig.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3danimation.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3danimation_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dcore.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dcore_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dextras.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dextras_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dinput.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dinput_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dlogic.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dlogic_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquick.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquick_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickanimation.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickextras.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickextras_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickinput.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickinput_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickrender.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickrender_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickscene2d.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3drender.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3drender_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_accessibility_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axbase.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axbase_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axcontainer.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axcontainer_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axserver.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axserver_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bluetooth.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bluetooth_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bootstrap_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_concurrent.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_concurrent_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_core.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_core_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_dbus.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_dbus_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designer.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designer_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designercomponents_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_egl_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_fb_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gamepad.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gamepad_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gui.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gui_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_help.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_help_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_location.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_location_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimedia.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimedia_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimediawidgets.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_network.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_network_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_nfc.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_nfc_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_opengl.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_opengl_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_openglextensions.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_openglextensions_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_packetprotocol_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_positioning.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_positioning_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_printsupport.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_printsupport_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qml.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qml_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmldebug_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmldevtools_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmltest.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmltest_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quick.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quick_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickcontrols2.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickparticles_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickwidgets.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickwidgets_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_scxml.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_scxml_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sensors.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sensors_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialbus.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialbus_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialport.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialport_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sql.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sql_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_svg.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_svg_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_testlib.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_testlib_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_theme_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_uiplugin.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_uitools.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_uitools_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_webchannel.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_webchannel_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_websockets.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_websockets_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_widgets.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_widgets_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_winextras.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_winextras_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xml.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xml_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xmlpatterns.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/features/qt_functions.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/qt_config.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/win32-g++/qmake.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/spec_post.prf \
.qmake.stash \
D:/qt/5.9.9/mingw53_32/mkspecs/features/exclusive_builds.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/toolchain.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/default_pre.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/win32/default_pre.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/resolve_config.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/exclusive_builds_post.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/default_post.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/qml_debug.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/precompile_header.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/warn_on.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/qt.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/resources.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/moc.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/win32/opengl.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/uic.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/qmake_use.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/file_copies.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/win32/windows.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/testcase_targets.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/exceptions.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/yacc.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/features/lex.prf \
../supermarket/Demo2.pro \
D:/qt/5.9.9/mingw53_32/lib/qtmaind.prl \
D:/qt/5.9.9/mingw53_32/lib/Qt5Widgets.prl \
D:/qt/5.9.9/mingw53_32/lib/Qt5Gui.prl \
D:/qt/5.9.9/mingw53_32/lib/Qt5Network.prl \
D:/qt/5.9.9/mingw53_32/lib/Qt5Core.prl
$(QMAKE) -o Makefile ..\supermarket\Demo2.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
D:/qt/5.9.9/mingw53_32/mkspecs/features/spec_pre.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/qdevice.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/features/device_config.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/common/sanitize.conf:
D:/qt/5.9.9/mingw53_32/mkspecs/common/gcc-base.conf:
D:/qt/5.9.9/mingw53_32/mkspecs/common/g++-base.conf:
D:/qt/5.9.9/mingw53_32/mkspecs/common/angle.conf:
D:/qt/5.9.9/mingw53_32/mkspecs/qconfig.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3danimation.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3danimation_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dcore.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dcore_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dextras.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dextras_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dinput.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dinput_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dlogic.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dlogic_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquick.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquick_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickanimation.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickextras.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickextras_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickinput.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickinput_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickrender.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickrender_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickscene2d.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3drender.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3drender_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_accessibility_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axbase.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axbase_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axcontainer.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axcontainer_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axserver.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axserver_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bluetooth.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bluetooth_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bootstrap_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_concurrent.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_concurrent_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_core.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_core_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_dbus.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_dbus_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designer.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designer_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designercomponents_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_egl_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_fb_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gamepad.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gamepad_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gui.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gui_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_help.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_help_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_location.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_location_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimedia.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimedia_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimediawidgets.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_network.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_network_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_nfc.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_nfc_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_opengl.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_opengl_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_openglextensions.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_openglextensions_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_packetprotocol_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_positioning.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_positioning_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_printsupport.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_printsupport_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qml.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qml_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmldebug_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmldevtools_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmltest.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qmltest_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quick.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quick_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickcontrols2.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickparticles_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickwidgets.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_quickwidgets_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_scxml.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_scxml_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sensors.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sensors_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialbus.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialbus_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialport.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_serialport_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sql.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_sql_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_svg.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_svg_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_testlib.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_testlib_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_theme_support_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_uiplugin.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_uitools.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_uitools_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_webchannel.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_webchannel_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_websockets.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_websockets_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_widgets.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_widgets_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_winextras.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_winextras_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xml.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xml_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xmlpatterns.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
D:/qt/5.9.9/mingw53_32/mkspecs/features/qt_functions.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/qt_config.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/win32-g++/qmake.conf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/spec_post.prf:
.qmake.stash:
D:/qt/5.9.9/mingw53_32/mkspecs/features/exclusive_builds.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/toolchain.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/default_pre.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/win32/default_pre.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/resolve_config.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/exclusive_builds_post.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/default_post.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/qml_debug.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/precompile_header.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/warn_on.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/qt.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/resources.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/moc.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/win32/opengl.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/uic.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/qmake_use.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/file_copies.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/win32/windows.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/testcase_targets.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/exceptions.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/yacc.prf:
D:/qt/5.9.9/mingw53_32/mkspecs/features/lex.prf:
../supermarket/Demo2.pro:
D:/qt/5.9.9/mingw53_32/lib/qtmaind.prl:
D:/qt/5.9.9/mingw53_32/lib/Qt5Widgets.prl:
D:/qt/5.9.9/mingw53_32/lib/Qt5Gui.prl:
D:/qt/5.9.9/mingw53_32/lib/Qt5Network.prl:
D:/qt/5.9.9/mingw53_32/lib/Qt5Core.prl:
qmake: FORCE
@$(QMAKE) -o Makefile ..\supermarket\Demo2.pro -spec win32-g++ "CONFIG+=debug" "CONFIG+=qml_debug"
qmake_all: FORCE
make_first: debug-make_first release-make_first FORCE
all: debug-all release-all FORCE
clean: debug-clean release-clean FORCE
distclean: debug-distclean release-distclean FORCE
-$(DEL_FILE) Makefile
-$(DEL_FILE) .qmake.stash
debug-mocclean:
$(MAKE) -f $(MAKEFILE).Debug mocclean
release-mocclean:
$(MAKE) -f $(MAKEFILE).Release mocclean
mocclean: debug-mocclean release-mocclean
debug-mocables:
$(MAKE) -f $(MAKEFILE).Debug mocables
release-mocables:
$(MAKE) -f $(MAKEFILE).Release mocables
mocables: debug-mocables release-mocables
check: first
benchmark: first
FORCE:
$(MAKE) -f $(MAKEFILE).Release uninstall
$(MAKEFILE).Debug: Makefile
$(MAKEFILE).Release: Makefile
# "Makefile" 目标,它依赖于一系列的文件和配置文件,这些文件大多是和 Qt 的构建配置、模块定义等相关的,
# 最后通过执行特定的 qmake 命令来重新生成 Makefile 文件(用于更新构建配置等情况)
Makefile:../supermarket/Demo2.pro D:/qt/5.9.9/mingw53_32/mkspecs/win32-g++/qmake.conf D:/qt/5.9.9/mingw53_32/mkspecs/features/spec_pre.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/qdevice.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/features/device_config.prf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/sanitize.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/gcc-base.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/g++-base.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/common/angle.conf \
D:/qt/5.9.9/mingw53_32/mkspecs/qconfig.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3danimation.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3danimation_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dcore.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dcore_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dextras.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dextras_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dinput.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dinput_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dlogic.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dlogic_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquick.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquick_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickanimation.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickextras.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickextras_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickinput.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickinput_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickrender.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickrender_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickscene2d.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3drender.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_3drender_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_accessibility_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axbase.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axbase_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axcontainer.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axcontainer_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axserver.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_axserver_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bluetooth.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bluetooth_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_bootstrap_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_concurrent.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_concurrent_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_core.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_core_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_dbus.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_dbus_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designer.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designer_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_designercomponents_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_egl_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_fb_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gamepad.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gamepad_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gui.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_gui_private.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_help.pri \
D:/qt/5.9.9/mingw53_32/mkspecs/modules/qt_lib_help_p

@ -5,8 +5,23 @@ QMAKE_DEFAULT_INCDIRS = \
D:/Software/MinGW-w64/mingw32/lib/gcc/i686-w64-mingw32/7.2.0/include \
D:/Software/MinGW-w64/mingw32/lib/gcc/i686-w64-mingw32/7.2.0/include-fixed \
D:/Software/MinGW-w64/mingw32/i686-w64-mingw32/include
// QMAKE_DEFAULT_INCDIRS变量定义了编译器搜索头文件的路径列表。
// 这些路径包括:
// - i686-w64-mingw32/7.2.0/include/c++: GCC编译器C++标准库头文件路径。
// - i686-w64-mingw32/7.2.0/include/c++/i686-w64-mingw32: 特定于目标架构的C++头文件路径。
// - i686-w64-mingw32/7.2.0/include/c++/backward: 兼容旧版本的C++头文件路径。
// - i686-w64-mingw32/7.2.0/include: GCC编译器其他头文件路径。
// - i686-w64-mingw32/7.2.0/include-fixed: 包含固定名称头文件的路径。
// - i686-w64-mingw32/include: MinGW-w64系统头文件路径。
QMAKE_DEFAULT_LIBDIRS = \
D:/Software/MinGW-w64/mingw32/lib/gcc/i686-w64-mingw32/7.2.0 \
D:/Software/MinGW-w64/mingw32/lib/gcc \
D:/Software/MinGW-w64/mingw32/i686-w64-mingw32/lib \
D:/Software/MinGW-w64/mingw32/lib
// QMAKE_DEFAULT_LIBDIRS变量定义了编译器搜索库文件的路径列表。
// 这些路径包括:
// - lib/gcc/i686-w64-mingw32/7.2.0: GCC编译器特定版本的库文件路径。
// - lib/gcc: GCC编译器通用库文件路径。
// - i686-w64-mingw32/lib: MinGW-w64架构相关的库文件路径。
// - lib: MinGW-w64通用库文件路径。

@ -5,47 +5,66 @@
#-------------------------------------------------
QT += core gui
# 指定项目需要使用的Qt模块这里添加了core核心模块和gui图形用户界面模块
QT += network
# 添加了network模块用于网络功能
CONFIG += c++11
# 配置项目以使用C++11标准
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 如果Qt版本大于4则添加widgets模块这是为了兼容旧版本的Qt
TARGET = Demo2
# 指定项目的输出目标可执行文件名称为Demo2
TEMPLATE = app
# 指定项目的模板类型为应用程序app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# 如果使用被标记为弃用deprecated的Qt特性则编译器会发出警告
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
# 如果使用了在Qt 6.0.0之前被弃用的API则代码将无法编译这行被注释掉了,需要时可以取消注释
SOURCES += main.cpp\
quiwidget.cpp \
supermarket.cpp
# 指定项目的源文件这里是main.cpp和其他两个.cpp文件
HEADERS += \
quiwidget.h \
head.h \
supermarket.h
# 指定项目的头文件
FORMS += \
supermarket.ui
# 指定项目的UI文件这里是使用Qt Designer设计的界面文件
RESOURCES += \
main.qrc \
qss.qrc \
demo.qrc \
image.qrc
# 指定项目的资源文件,这些文件包含了图标样式表等资源
DISTFILES += \
Demo2.pro.user \
main.ico \
image/Font Awesome Cheatsheet.png
QT += network
# 指定项目分发时需要包含的额外文件
QT += network
# 再次添加network模块可能是为了强调或重复添加
RC_FILE=icon.rc
# 指定Windows资源文件通常用于版本信息和图标等

@ -1,39 +1,43 @@
; Script generated by the Inno Setup Script Wizard.
; 这是由 Inno Setup 脚本向导生成的脚本,下面提示查看文档获取创建 Inno Setup 脚本文件的详细信息
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "QNeuSupermarket"
#define MyAppVersion "1.2"
#define MyAppPublisher "QNeuSupermarket"
#define MyAppURL "http://60.205.215.163/"
#define MyAppExeName "QNeuSupermarket.exe"
; 以下是定义的一些常量,方便后续在脚本中引用,用于表示应用程序相关的各种属性
#define MyAppName "QNeuSupermarket" ; 定义应用程序的名称
#define MyAppVersion "1.2" ; 定义应用程序的版本号
#define MyAppPublisher "QNeuSupermarket" ; 定义应用程序的发布者
#define MyAppURL "http://60.205.215.163/" ; 定义应用程序相关的网址,比如发布者网址、支持网址、更新网址等都会使用到它
#define MyAppExeName "QNeuSupermarket.exe" ; 定义应用程序可执行文件的名称
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
; 安装程序的基本设置部分
; 注意AppId 的值唯一标识这个应用程序,不要在其他应用程序的安装程序中使用相同的 AppId 值。
; (要生成新的 GUID可以在 IDE 中点击 Tools | Generate GUID
AppId={{228AD296-F54D-45A3-8EED-7C7B741B203F}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=D:\FangCloudV2\Qdoor\Programmers\Demo2\release\license.txt
InfoAfterFile=D:\FangCloudV2\Qdoor\Programmers\Demo2\release\help.txt
OutputDir=C:\Program Files
OutputBaseFilename=QNeuSupermarketSetup
SetupIconFile=D:\FangCloudV2\Qdoor\Programmers\Demo2\main.ico
Compression=lzma
SolidCompression=yes
AppName={#MyAppName} ; 使用前面定义的常量作为应用程序名称
AppVersion={#MyAppVersion} ; 使用前面定义的常量作为应用程序版本号
;AppVerName={#MyAppName} {#MyAppVersion} ; 这行被注释掉了,原本可能用于设置显示版本相关的名称,格式为应用程序名 + 版本号
AppPublisher={#MyAppPublisher} ; 使用前面定义的常量作为应用程序发布者
AppPublisherURL={#MyAppURL} ; 使用前面定义的常量作为应用程序发布者的网址
AppSupportURL={#MyAppURL} ; 使用前面定义的常量作为应用程序支持网址
AppUpdatesURL={#MyAppURL} ; 使用前面定义的常量作为应用程序更新网址
DefaultDirName={pf}\{#MyAppName} ; 设置默认的安装目录,{pf} 通常代表 Program Files 文件夹,后面跟上应用程序名称
DefaultGroupName={#MyAppName} ; 设置在开始菜单中创建的程序组的默认名称,使用应用程序名称
AllowNoIcons=yes ; 允许在安装时不创建图标(比如不在开始菜单或桌面创建快捷方式图标等情况)
LicenseFile=D:\FangCloudV2\Qdoor\Programmers\Demo2\release\license.txt ; 指定许可文件的路径,安装过程中可能会展示许可协议内容
InfoAfterFile=D:\FangCloudV2\Qdoor\Programmers\Demo2\release\help.txt ; 指定安装完成后显示的帮助文件的路径
OutputDir=C:\Program Files ; 输出安装文件的目录,即生成的安装程序最终放置的位置
OutputBaseFilename=QNeuSupermarketSetup ; 输出的安装程序的基础文件名,最终生成的安装文件名可能以此为基础
SetupIconFile=D:\FangCloudV2\Qdoor\Programmers\Demo2\main.ico ; 指定安装程序的图标文件路径
Compression=lzma ; 设置安装文件的压缩方式为 lzma 算法
SolidCompression=yes ; 启用固态压缩,有助于提高压缩效率
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
; 定义安装程序支持的语言,每种语言对应一个 MessagesFile用于加载相应语言的文本消息
Name: "english"; MessagesFile: "compiler:Default.isl" ; 支持英语,对应的消息文件路径
Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" ; 支持巴西葡萄牙语,对应相应的消息文件路径
Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl" ; 支持加泰罗尼亚语,以此类推……
Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
@ -59,12 +63,14 @@ Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
; 定义安装过程中的可选任务(比如创建桌面图标、快速启动栏图标等)
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked ; 定义创建桌面图标的任务,初始未勾选状态,通过相应文本标识来描述任务相关内容
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1 ; 定义创建快速启动栏图标的任务,初始未勾选状态,并且限定在版本低于 0.6.1 时可用(可能是针对旧系统等情况的兼容设置)
[Files]
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\QNeuSupermarket.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\D3Dcompiler_47.dll"; DestDir: "{app}"; Flags: ignoreversion
; 定义要安装到目标系统的文件,包括源文件路径和目标安装目录等信息
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\QNeuSupermarket.exe"; DestDir: "{app}"; Flags: ignoreversion ; 将指定路径的可执行文件安装到 {app} 表示的目录(通常就是安装目录),并且忽略版本检查(即不管目标系统是否已存在同名但不同版本的文件,都会进行安装覆盖等操作)
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\D3Dcompiler_47.dll"; DestDir: "{app}"; Flags: ignoreversion ; 安装相应的动态链接库文件到安装目录,同样忽略版本检查,以下类似……
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\Des3.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\help.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\icon_res.o"; DestDir: "{app}"; Flags: ignoreversion
@ -100,22 +106,23 @@ Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\Qt5Svg.dll"; DestDir: "{
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\quiwidget.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\supermarket.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\bearer\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\bearer\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs ; 将指定目录下的所有文件(包括子目录中的文件)安装到 {app} 目录,会递归处理子目录并创建相应子目录结构
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\cache\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\iconengines\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\imageformats\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\platforms\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\translations\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\FangCloudV2\Qdoor\Programmers\Demo2\release\user\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
; 注意:不要对任何共享的系统文件使用 "Flags: ignoreversion",否则可能导致系统文件冲突等问题
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
; 定义安装后在系统中创建的各种图标(快捷方式图标等)相关信息
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" ; 在程序组中创建应用程序的图标快捷方式,指向安装目录下的可执行文件
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" ; 在程序组中创建指向应用程序相关网址的快捷方式(可能用于访问官网等)
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" ; 在程序组中创建卸载程序的快捷方式,{uninstallexe} 通常指向安装程序自带的卸载功能可执行文件
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon ; 在公共桌面(所有用户可见的桌面)创建应用程序的图标快捷方式,并且关联到前面定义的 "desktopicon" 任务,只有当该任务被勾选时才会创建
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon ; 在用户的快速启动栏创建应用程序的图标快捷方式,关联到 "quicklaunchicon" 任务,根据任务勾选情况决定是否创建
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
; 定义安装完成后要执行的操作,比如启动应用程序等
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent ; 安装完成后运行应用程序的可执行文件设置为不等待其运行结束nowait在安装后立即执行postinstall如果安装过程是静默模式无界面等情况则跳过此操作skipifsilent

@ -1,43 +1,64 @@
#include "appinit.h"
#include "qapplication.h"
#include "qevent.h"
#include "appinit.h" // 包含AppInit类的声明
#include "qapplication.h" // 包含QApplication类的声明用于访问应用程序的全局状态
#include "qevent.h" // 包含QEvent类的声明用于处理事件
// AppInit类的单例实例
AppInit *AppInit::self = 0;
// AppInit类的构造函数接收一个QObject指针作为父对象
AppInit::AppInit(QObject *parent) : QObject(parent)
{
// 构造函数中没有执行任何操作只是简单地调用了QObject的构造函数
}
// AppInit类的事件过滤器函数
bool AppInit::eventFilter(QObject *obj, QEvent *evt)
{
// 将QObject转换为QWidget因为我们需要使用QWidget的属性和方法
QWidget *w = (QWidget *)obj;
// 检查窗口是否设置了"canMove"属性为true如果为false则不处理事件
if (!w->property("canMove").toBool()) {
return QObject::eventFilter(obj, evt);
}
// 定义两个静态变量来存储鼠标的位置和按下状态
static QPoint mousePoint;
static bool mousePressed = false;
// 将QEvent转换为QMouseEvent以便访问鼠标事件的特定信息
QMouseEvent *event = static_cast<QMouseEvent *>(evt);
// 检查事件类型是否为鼠标按下事件
if (event->type() == QEvent::MouseButtonPress) {
// 如果按下的是左键,则记录鼠标按下状态和鼠标的初始位置
if (event->button() == Qt::LeftButton) {
mousePressed = true;
mousePoint = event->globalPos() - w->pos();
return true;
return true; // 事件已处理
}
} else if (event->type() == QEvent::MouseButtonRelease) {
}
// 检查事件类型是否为鼠标释放事件
else if (event->type() == QEvent::MouseButtonRelease) {
mousePressed = false;
return true;
} else if (event->type() == QEvent::MouseMove) {
return true; // 事件已处理
}
// 检查事件类型是否为鼠标移动事件
else if (event->type() == QEvent::MouseMove) {
// 如果鼠标按下并且当前按下的是左键,则移动窗口到新的位置
if (mousePressed && (event->buttons() && Qt::LeftButton)) {
w->move(event->globalPos() - mousePoint);
return true;
return true; // 事件已处理
}
}
// 如果事件不是我们关心的类型则使用QObject的默认事件过滤器
return QObject::eventFilter(obj, evt);
}
// AppInit类的启动函数
void AppInit::start()
{
// 在应用程序中安装事件过滤器
qApp->installEventFilter(this);
}
}

@ -1,50 +1,7 @@
#ifndef QUIWIDGET_H
#define QUIWIDGET_H
#include "quiwidget.h"
#define TIMEMS qPrintable (QTime::currentTime().toString("HH:mm:ss zzz"))
#define TIME qPrintable (QTime::currentTime().toString("HH:mm:ss"))
#define QDATE qPrintable (QDate::currentDate().toString("yyyy-MM-dd"))
#define QTIME qPrintable (QTime::currentTime().toString("HH-mm-ss"))
#define DATETIME qPrintable (QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))
#define STRDATETIME qPrintable (QDateTime::currentDateTime().toString("yyyy-MM-dd-HH-mm-ss"))
#define STRDATETIMEMS qPrintable (QDateTime::currentDateTime().toString("yyyy-MM-dd-HH-mm-ss-zzz"))
#ifdef Q_OS_WIN
#define NEWLINE "\r\n"
#else
#define NEWLINE "\n"
#endif
/**
* QUI
* 1: N >= 12 ,,
* 2:(///)
* 3:,使,
* 4:, setSizeGripEnabled(true);
* 5: setStyle
* 6: showMessageBoxInfo
* 7: showMessageBoxError
* 8: showMessageBoxError
* 9: showInputBox
* 10:
* 11:////
* 12:/
**/
#include "head.h"
#ifdef quc
#if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
#include <QtDesigner/QDesignerExportWidget>
#else
#include <QtUiPlugin/QDesignerExportWidget>
#endif
class QDESIGNER_WIDGET_EXPORT QUIWidget : public QDialog
#else
// 以下是QUIWidget类的定义
class QUIWidget : public QDialog
#endif
{
Q_OBJECT
Q_ENUMS(Style)
@ -52,211 +9,162 @@ class QUIWidget : public QDialog
Q_PROPERTY(Qt::Alignment alignment READ getAlignment WRITE setAlignment)
public:
//将部分对象作为枚举值暴露给外部
// 将部分对象作为枚举值暴露给外部,用于标识窗体上的不同部件
enum Widget {
Lab_Ico = 0, //左上角图标
BtnMenu = 1, //下拉菜单按钮
BtnMenu_Min = 2, //最小化按钮
BtnMenu_Max = 3, //最大化按钮
BtnMenu_Normal = 4, //还原按钮
BtnMenu_Close = 5 //关闭按钮
Lab_Ico = 0,
BtnMenu = 1,
BtnMenu_Min = 2,
BtnMenu_Max = 3,
BtnMenu_Normal = 4,
BtnMenu_Close = 5
};
//样式枚举
// 样式枚举,定义了多种可切换的窗体样式
enum Style {
Style_Silvery = 0, //银色样式
Style_Blue = 1, //蓝色样式
Style_LightBlue = 2, //淡蓝色样式
Style_DarkBlue = 3, //深蓝色样式
Style_Gray = 4, //灰色样式
Style_LightGray = 5, //浅灰色样式
Style_DarkGray = 6, //深灰色样式
Style_Black = 7, //黑色样式
Style_LightBlack = 8, //浅黑色样式
Style_DarkBlack = 9, //深黑色样式
Style_PSBlack = 10, //PS黑色样式
Style_FlatBlack = 11, //黑色扁平样式
Style_FlatWhite = 12 //白色扁平样式
Style_Silvery = 0,
Style_Blue = 1,
Style_LightBlue = 2,
Style_DarkBlue = 3,
Style_Gray = 4,
Style_LightGray = 5,
Style_DarkGray = 6,
Style_Black = 7,
Style_LightBlack = 8,
Style_DarkBlack = 9,
Style_PSBlack = 10,
Style_FlatBlack = 11,
Style_FlatWhite = 12
};
//全局静态方法集合开始--------------------------------
public:
//桌面宽度高度
// 全局静态方法集合开始--------------------------------
// 获取桌面宽度
static int deskWidth();
// 获取桌面高度
static int deskHeight();
//程序本身文件名称
// 获取程序本身文件名称
static QString appName();
//程序当前所在路径
// 获取程序当前所在路径
static QString appPath();
//新建目录
// 创建新目录
static void newDir(const QString &dirName);
//写入消息到额外的的消息日志文件
// 写入消息到额外的消息日志文件
static void writeInfo(const QString &info, const QString &filePath = "log");
//设置全局样式
// 设置全局样式(通过样式枚举)
static void setStyle(QUIWidget::Style style);
// 设置全局样式通过QSS文件和多个颜色参数
static void setStyle(const QString &qssFile, QString &paletteColor, QString &textColor);
static void setStyle(const QString &qssFile, QString &textColor,
QString &panelColor, QString &borderColor,
// 设置全局样式通过QSS文件及多个具体颜色相关参数来设置调色板和样式表等
static void setStyle(const QString &qssFile, QString &textColor, QString &panelColor, QString &borderColor,
QString &normalColorStart, QString &normalColorEnd,
QString &darkColorStart, QString &darkColorEnd,
QString &highColor);
//根据QSS样式获取对应颜色值
QString &darkColorStart, QString &darkColorEnd, QString &highColor);
// 根据QSS样式获取对应颜色值
static void getQssColor(const QString &qss, QString &textColor,
QString &panelColor, QString &borderColor,
QString &normalColorStart, QString &normalColorEnd,
QString &darkColorStart, QString &darkColorEnd,
QString &highColor);
//设置窗体居中显示
QString &darkColorStart, QString &darkColorEnd, QString &highColor);
// 设置窗体居中显示
static void setFormInCenter(QWidget *frm);
//设置翻译文件
// 设置翻译文件
static void setTranslator(const QString &qmFile = ":/image/qt_zh_CN.qm");
//设置编码
// 设置编码
static void setCode();
//设置延时
// 线程休眠(用于模拟等待等情况)
static void sleep(int sec);
//设置系统时间
// 设置系统时间(年、月、日、时、分、秒)
static void setSystemDateTime(const QString &year, const QString &month, const QString &day,
const QString &hour, const QString &min, const QString &sec);
//设置开机自启动
// 设置开机自启动在Windows系统下通过注册表设置
static void runWithSystem(const QString &strName, const QString &strPath, bool autoRun = true);
//判断是否是IP地址
// 判断是否是IP地址
static bool isIP(const QString &ip);
//判断是否是MAC地址
// 判断是否是MAC地址
static bool isMac(const QString &mac);
//判断是否是合法的电话号码
// 判断是否是合法的电话号码
static bool isTel(const QString &tel);
//判断是否是合法的邮箱地址
// 判断是否是合法的邮箱地址
static bool isEmail(const QString &email);
//16进制字符串转10进制
// 16进制字符串转10进制
static int strHexToDecimal(const QString &strHex);
//10进制字符串转10进制
// 10进制字符串转10进制
static int strDecimalToDecimal(const QString &strDecimal);
//2进制字符串转10进制
// 2进制字符串转10进制
static int strBinToDecimal(const QString &strBin);
//16进制字符串转2进制字符串
// 16进制字符串转2进制字符串
static QString strHexToStrBin(const QString &strHex);
//10进制转2进制字符串一个字节
// 10进制转2进制字符串一个字节
static QString decimalToStrBin1(int decimal);
//10进制转2进制字符串两个字节
// 10进制转2进制字符串两个字节
static QString decimalToStrBin2(int decimal);
//10进制转16进制字符串,补零.
// 10进制转16进制字符串补零
static QString decimalToStrHex(int decimal);
//int转字节数组
// int转字节数组
static QByteArray intToByte(int i);
//字节数组转int
// 字节数组转int
static int byteToInt(const QByteArray &data);
//ushort转字节数组
// ushort转字节数组
static QByteArray ushortToByte(ushort i);
//字节数组转ushort
// 字节数组转ushort
static int byteToUShort(const QByteArray &data);
//异或加密算法
// 异或加密算法
static QString getXorEncryptDecrypt(const QString &str, char key);
//异或校验
// 异或校验
static uchar getOrCode(const QByteArray &data);
//计算校验码
// 计算校验码
static uchar getCheckCode(const QByteArray &data);
//字节数组转Ascii字符串
// 字节数组转Ascii字符串
static QString byteArrayToAsciiStr(const QByteArray &data);
//16进制字符串转字节数组
// 16进制字符串转字节数组
static QByteArray hexStrToByteArray(const QString &str);
static char convertHexChar(char ch);
//Ascii字符串转字节数组
// Ascii字符串转字节数组
static QByteArray asciiStrToByteArray(const QString &str);
//字节数组转16进制字符串
// 字节数组转16进制字符串
static QString byteArrayToHexStr(const QByteArray &data);
//获取选择的文件
// 获取选择的文件
static QString getFileName(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath());
//获取选择的文件集合
// 获取选择的文件集合
static QStringList getFileNames(const QString &filter, QString defaultDir = QCoreApplication::applicationDirPath());
//获取选择的目录
// 获取选择的目录
static QString getFolderName();
//获取文件名,含拓展名
// 获取文件名(含拓展名)
static QString getFileNameWithExtension(const QString &strFilePath);
//获取选择文件夹中的文件
// 获取选择文件夹中的文件
static QStringList getFolderFileNames(const QStringList &filter);
//文件夹是否存在
// 文件夹是否存在
static bool folderIsExist(const QString &strFolder);
//文件是否存在
// 文件是否存在
static bool fileIsExist(const QString &strFile);
//复制文件
// 复制文件
static bool copyFile(const QString &sourceFile, const QString &targetFile);
//删除文件夹下所有文件
// 删除文件夹下所有文件
static void deleteDirectory(const QString &path);
//判断IP地址及端口是否在线
// 判断IP地址及端口是否在线
static bool ipLive(const QString &ip, int port, int timeout = 1000);
//获取网页所有源代码
// 获取网页所有源代码
static QString getHtml(const QString &url);
//获取本机公网IP地址
// 获取本机公网IP地址
static QString getNetIP(const QString &webCode);
//获取本机IP
// 获取本机IP
static QString getLocalIP();
//Url地址转为IP地址
// Url地址转为IP地址
static QString urlToIP(const QString &url);
//判断是否通外网
// 判断是否通外网
static bool isWebOk();
//弹出消息框
// 弹出消息框
static void showMessageBoxInfo(const QString &info, int closeSec = 0);
//弹出错误框
// 弹出错误框
static void showMessageBoxError(const QString &info, int closeSec = 0);
//弹出询问框
// 弹出询问框
static int showMessageBoxQuestion(const QString &info);
//弹出输入框
// 弹出输入框
static QString showInputBox(bool &ok, const QString &title, int type = 0, int closeSec = 0,
QString defaultValue = QString(), bool pwd = false);
//全局静态方法集合结束--------------------------------
// 全局静态方法集合结束--------------------------------
public:
// 构造函数
explicit QUIWidget(QWidget *parent = 0);
// 析构函数
~QUIWidget();
protected:
@ -280,33 +188,35 @@ private:
QVBoxLayout *verticalLayout3;
private:
bool max; //是否处于最大化状态
QRect location; //鼠标移动窗体后的坐标位置
QString title; //标题
Qt::Alignment alignment; //标题文本对齐
bool minHide; //最小化隐藏
QWidget *mainWidget; //主窗体对象
bool max; // 是否处于最大化状态
QRect location; // 鼠标移动窗体后的坐标位置
QString title; // 标题
Qt::Alignment alignment; // 标题文本对齐
bool minHide; // 最小化隐藏
QWidget *mainWidget; // 主窗体对象
public:
QLabel *getLabIco() const;
QLabel *getLabTitle() const;
QToolButton *getBtnMenu() const;
QPushButton *getBtnMenuMin() const;
QPushButton *getBtnMenuMax() const;
QLabel *getLabIco() const;
QLabel *getLabTitle() const;
QToolButton *getBtnMenu() const;
QPushButton *getBtnMenuMin() const;
QPushButton *getBtnMenuMax() const;
QPushButton *getBtnMenuMClose() const;
Style getStyle() const;
QString getTitle() const;
Qt::Alignment getAlignment() const;
Style getStyle() const;
QString getTitle() const;
Qt::Alignment getAlignment() const;
QSize sizeHint() const;
QSize minimumSizeHint() const;
QSize sizeHint() const;
QSize minimumSizeHint() const;
private slots:
void initControl(); //初始化控件
void initForm(); //初始化窗体
void changeStyle(); //更换样式
// 初始化控件
void initControl();
// 初始化窗体
void initForm();
// 更换样式
void changeStyle();
private slots:
void on_btnMenu_Min_clicked();
@ -314,280 +224,118 @@ private slots:
void on_btnMenu_Close_clicked();
public Q_SLOTS:
//设置部件图标
// 设置部件图标
void setIcon(QUIWidget::Widget widget, QChar str, quint32 size = 9);
void setIconMain(QChar str, quint32 size = 9);
//设置部件图片
// 设置部件图片
void setPixmap(QUIWidget::Widget widget, const QString &file, const QSize &size = QSize(16, 16));
//设置部件是否可见
// 设置部件是否可见
void setVisible(QUIWidget::Widget widget, bool visible = true);
//设置只有关闭按钮
// 设置只有关闭按钮
void setOnlyCloseBtn();
//设置标题栏高度
// 设置标题栏高度
void setTitleHeight(int height);
//设置按钮统一宽度
// 设置按钮统一宽度
void setBtnWidth(int width);
//设置标题及文本样式
// 设置标题及文本样式
void setTitle(const QString &title);
void setAlignment(Qt::Alignment alignment);
//设置最小化隐藏
// 设置最小化隐藏
void setMinHide(bool minHide);
//设置主窗体
// 设置主窗体
void setMainWidget(QWidget *mainWidget);
Q_SIGNALS:
void changeStyle(const QString &qssFile);
void closing();
};
//弹出信息框类
class QUIMessageBox : public QDialog
{
Q_OBJECT
public:
explicit QUIMessageBox(QWidget *parent = 0);
~QUIMessageBox();
static QUIMessageBox *Instance()
{
static QMutex mutex;
if (!self) {
QMutexLocker locker(&mutex);
if (!self) {
self = new QUIMessageBox;
}
}
return self;
}
protected:
void closeEvent(QCloseEvent *);
bool eventFilter(QObject *obj, QEvent *evt);
private:
static QUIMessageBox *self;
QVBoxLayout *verticalLayout1;
QWidget *widgetTitle;
QHBoxLayout *horizontalLayout3;
QLabel *labIco;
QLabel *labTitle;
QLabel *labTime;
QWidget *widgetMenu;
QHBoxLayout *horizontalLayout4;
QPushButton *btnMenu_Close;
QWidget *widgetMain;
QVBoxLayout *verticalLayout2;
QFrame *frame;
QVBoxLayout *verticalLayout4;
QHBoxLayout *horizontalLayout1;
QLabel *labIcoMain;
QSpacerItem *horizontalSpacer1;
QLabel *labInfo;
QHBoxLayout *horizontalLayout2;
QSpacerItem *horizontalSpacer2;
QPushButton *btnOk;
QPushButton *btnCancel;
private:
int closeSec; //总显示时间
int currentSec; //当前已显示时间
private slots:
void initControl(); //初始化控件
void initForm(); //初始化窗体
void checkSec(); //校验倒计时
private slots:
void on_btnOk_clicked();
void on_btnMenu_Close_clicked();
public Q_SLOTS:
void setIconMain(QChar str, quint32 size = 9);
void setMessage(const QString &msg, int type, int closeSec = 0);
};
//弹出输入框类
class QUIInputBox : public QDialog
{
Q_OBJECT
public:
explicit QUIInputBox(QWidget *parent = 0);
~QUIInputBox();
static QUIInputBox *Instance()
{
static QMutex mutex;
if (!self) {
QMutexLocker locker(&mutex);
if (!self) {
self = new QUIInputBox;
}
}
return self;
}
protected:
void closeEvent(QCloseEvent *);
bool eventFilter(QObject *obj, QEvent *evt);
private:
static QUIInputBox *self;
QVBoxLayout *verticalLayout1;
QWidget *widgetTitle;
QHBoxLayout *horizontalLayout1;
QLabel *labIco;
QLabel *labTitle;
QLabel *labTime;
QWidget *widgetMenu;
QHBoxLayout *horizontalLayout2;
QPushButton *btnMenu_Close;
QWidget *widgetMain;
QVBoxLayout *verticalLayout2;
QFrame *frame;
QVBoxLayout *verticalLayout3;
QLabel *labInfo;
QLineEdit *txtValue;
QComboBox *cboxValue;
QHBoxLayout *lay;
QSpacerItem *horizontalSpacer;
QPushButton *btnOk;
QPushButton *btnCancel;
private:
int closeSec; //总显示时间
int currentSec; //当前已显示时间
QString value; //当前值
private slots:
void initControl(); //初始化控件
void initForm(); //初始化窗体
void checkSec(); //校验倒计时
private slots:
void on_btnOk_clicked();
void on_btnMenu_Close_clicked();
public:
QString getValue()const;
public Q_SLOTS:
void setIconMain(QChar str, quint32 size = 9);
void setParameter(const QString &title, int type = 0, int closeSec = 0,
QString defaultValue = QString(), bool pwd = false);
};
//图形字体处理类
class IconHelper : public QObject
void QUIWidget::initControl()
{
Q_OBJECT
public:
explicit IconHelper(QObject *parent = 0);
static IconHelper *Instance()
{
static QMutex mutex;
if (!self) {
QMutexLocker locker(&mutex);
if (!self) {
self = new IconHelper;
}
}
return self;
}
void setIcon(QLabel *lab, QChar c, quint32 size = 9);
void setIcon(QAbstractButton *btn, QChar c, quint32 size = 9);
QPixmap getPixmap(const QString &color, QChar c, quint32 size = 9,
quint32 pixWidth = 10, quint32 pixHeight = 10);
//根据按钮获取该按钮对应的图标
QPixmap getPixmap(QToolButton *btn, bool normal);
//指定导航面板样式,不带图标
static void setStyle(QWidget *widget, const QString &type = "left", int borderWidth = 3,
const QString &borderColor = "#029FEA",
const QString &normalBgColor = "#292F38",
const QString &darkBgColor = "#1D2025",
const QString &normalTextColor = "#54626F",
const QString &darkTextColor = "#FDFDFD");
//指定导航面板样式,带图标和效果切换
void setStyle(QWidget *widget, QList<QToolButton *> btns, QList<int> pixChar,
quint32 iconSize = 9, quint32 iconWidth = 10, quint32 iconHeight = 10,
const QString &type = "left", int borderWidth = 3,
const QString &borderColor = "#029FEA",
const QString &normalBgColor = "#292F38",
const QString &darkBgColor = "#1D2025",
const QString &normalTextColor = "#54626F",
const QString &darkTextColor = "#FDFDFD");
//指定导航按钮样式,带图标和效果切换
void setStyle(QFrame *frame, QList<QToolButton *> btns, QList<int> pixChar,
quint32 iconSize = 9, quint32 iconWidth = 10, quint32 iconHeight = 10,
const QString &normalBgColor = "#2FC5A2",
const QString &darkBgColor = "#3EA7E9",
const QString &normalTextColor = "#EEEEEE",
const QString &darkTextColor = "#FFFFFF");
protected:
bool eventFilter(QObject *watched, QEvent *event);
private:
static IconHelper *self; //对象自身
QFont iconFont; //图形字体
QList<QToolButton *> btns; //按钮队列
QList<QPixmap> pixNormal; //正常图片队列
QList<QPixmap> pixDark; //加深图片队列
};
//全局变量控制
class QUIConfig
{
public:
//全局图标
static QChar IconMain; //标题栏左上角图标
static QChar IconMenu; //下拉菜单图标
static QChar IconMin; //最小化图标
static QChar IconMax; //最大化图标
static QChar IconNormal; //还原图标
static QChar IconClose; //关闭图标
static QString FontName; //全局字体名称
static int FontSize; //全局字体大小
static QString ConfigFile; //配置文件文件路径及名称
//样式表颜色值
static QString TextColor; //文字颜色
static QString PanelColor; //面板颜色
static QString BorderColor; //边框颜色
static QString NormalColorStart;//正常状态开始颜色
static QString NormalColorEnd; //正常状态结束颜色
static QString DarkColorStart; //加深状态开始颜色
static QString DarkColorEnd; //加深状态结束颜色
static QString HighColor; //高亮颜色
static void ReadConfig(); //读取配置文件,在main函数最开始加载程序载入
static void WriteConfig(); //写入配置文件,在更改配置文件程序关闭时调用
static void NewConfig(); //以初始值新建配置文件
static bool CheckConfig(); //校验配置文件
};
#endif // QUIWIDGET_H
this->setObjectName(QString::fromUtf8("QUIWidget"));
this->resize(900, 750);
verticalLayout1 = new QVBoxLayout(this);
verticalLayout1->setSpacing(0);
verticalLayout1->setContentsMargins(11, 11, 11, 11);
verticalLayout1->setObjectName(QString::fromUtf8("verticalLayout1"));
verticalLayout1->setContentsMargins(1, 1, 1, 1);
widgetMain = new QWidget(this);
widgetMain->setObjectName(QString::fromUtf8("widgetMain"));
widgetMain->setStyleSheet(QString::fromUtf8(""));
verticalLayout2 = new QVBoxLayout(widgetMain);
verticalLayout2->setSpacing(0);
verticalLayout2->setContentsMargins(11, 11, 11, 11);
verticalLayout2->setObjectName(QString::fromUtf8("verticalLayout2"));
verticalLayout2->setContentsMargins(0, 0, 0, 0);
// 标题栏相关控件初始化
widgetTitle = new QWidget(widgetMain);
widgetTitle->setObjectName(QString::fromUtf8("widgetTitle"));
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(widgetTitle->sizePolicy().hasHeightForWidth());
widgetTitle->setSizePolicy(sizePolicy);
widgetTitle->setMinimumSize(QSize(0, 30));
horizontalLayout4 = new QHBoxLayout(widgetTitle);
horizontalLayout4->setSpacing(0);
horizontalLayout4->setContentsMargins(11, 11, 11, 11);
horizontalLayout4->setObjectName(QString::fromUtf8("horizontalLayout4"));
horizontalLayout4->setContentsMargins(0, 0, 0, 0);
labIco = new QLabel(widgetTitle);
labIco->setObjectName(QString::fromUtf8("labIco"));
QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred);
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(labIco->sizePolicy().hasHeightForWidth());
labIco->setSizePolicy(sizePolicy1);
labIco->setMinimumSize(QSize(30, 0));
labIco->setAlignment(Qt::AlignCenter);
horizontalLayout4->addWidget(labIco);
labTitle = new QLabel(widgetTitle);
labTitle->setObjectName(QString::fromUtf8("labTitle"));
QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(labTitle->sizePolicy().hasHeightForWidth());
labTitle->setSizePolicy(sizePolicy2);
labTitle->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter);
horizontalLayout4->addWidget(labTitle);
widgetMenu = new QWidget(widgetTitle);
widgetMenu->setObjectName(QString::fromUtf8("widgetMenu"));
sizePolicy1.setHeightForWidth(widgetMenu->sizePolicy().hasHeightForWidth());
widgetMenu->setSizePolicy(sizePolicy1);
horizontalLayout = new QHBoxLayout(widgetMenu);
horizontalLayout->setSpacing(0);
horizontalLayout->setContentsMargins(11, 11, 11, 11);
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
horizontalLayout->setContentsMargins(0, 0, 0, 0);
btnMenu = new QToolButton(widgetMenu);
btnMenu->setObjectName(QString::fromUtf8("btnMenu"));
QSizePolicy sizePolicy3(QSizePolicy::Fixed, QSizePolicy::Expanding);
sizePolicy3.setHorizontalStretch(0);
sizePolicy3.setVerticalStretch(0);
sizePolicy3.setHeightForWidth(btnMenu->sizePolicy().hasHeightForWidth());
btnMenu->setSizePolicy(sizePolicy3);
btnMenu->setMinimumSize(QSize(30, 0));
btnMenu->setMaximumSize(QSize(30, 16777215));
btnMenu->setFocusPolicy(Qt::NoFocus);
btnMenu->setPopupMode(QToolButton::InstantPopup);
horizontalLayout->addWidget(btnMenu);
btnMenu_Min = new QPushButton(widgetMenu);
btnMenu_Min->setObjectName(QString::fromUtf8("btnMenu_Min"));
QSizePolicy sizePolicy4(QSizePolicy::Minimum, QSizePolicy::Expanding);
sizePolicy4.setHorizontalStretch(0);
sizePolicy4.setVerticalStretch(0);
sizePolicy4.setHeightForWidth(btnMenu_Min->sizePolicy().hasHeightForWidth());
btnMenu_Min->setSizePolicy(sizePolicy4);
btnMenu_Min->setMinimumSize(QSize(30, 0));
btnMenu_Min->setMaximumSize(QSize(30, 16777215));
btnMenu_Min->setCursor(QCursor(Qt::ArrowCursor));
btnMenu_Min->setFocusPolicy(Qt::NoFocus);
horizontalLayout->addWidget(btnMenu_Min);
btnMenu_Max = new QPushButton(widgetMenu);
btnMenu_Max->setObjectName(QString::fromUtf8("btnMenu_Max"));
sizePolicy3.setHeightForWidth(btnMenu_Max->sizePolicy().hasHeightForWidth());

@ -1,93 +1,84 @@
#ifndef SUPERMARKET_H
#define SUPERMARKET_H
// 预处理指令,防止头文件内容被重复包含。
#include <QMainWindow>
#include<fstream>
#include<sstream>
#include<iostream>
#include<QString>
#include <string>
#include <QTimer>
#include <QFile>
#include <QtNetwork>
#include <QDebug>
#include <qdatetime.h>
#include "ui_supermarket.h"
#include "quiwidget.h"
using namespace std;
#include<fstream> // 文件流,用于文件操作
#include<sstream> // 字符串流,用于字符串和流的操作
#include<iostream> // 输入输出流
#include<QString> // Qt字符串类
#include <string> // 标准C++字符串类
#include <QTimer> // 定时器类
#include <QFile> // 文件操作类
#include <QtNetwork> // Qt网络模块
#include <QDebug> // Qt调试输出
#include <qdatetime.h> // Qt日期时间类
#include "ui_supermarket.h" // UI类头文件
#include "quiwidget.h" // 可能是自定义的QWidget派生类头文件
using namespace std; // 使用标准命名空间
namespace Ui {
class Supermarket;
}
} // Ui命名空间用于隔离自动生成的UI类
// 商品结构体,包含商品的各种属性
struct Good
{
string name;
string id;
double cost, price; //分别是进价和售价
double number;
string measure_unit, category; //计量单位和类别
string purchase_time, sell_time; //入库、出库时间和保质期
Good* next;
string name; // 商品名称
string id; // 商品ID
double cost, price; // 成本价和售价
double number; // 商品数量
string measure_unit, category; // 计量单位和类别
string purchase_time, sell_time; // 采购时间和销售时间
Good* next; // 指向下一个商品节点的指针
};
// 超市管理系统类继承自QMainWindow
class Supermarket : public QMainWindow
{
Q_OBJECT
Q_OBJECT // Qt宏用于信号和槽机制
public:
// 构造函数
explicit Supermarket(QWidget *parent = 0);
// 析构函数
~Supermarket();
bool ManInput(); //人工输入并创建、入库商品,成功返回1,否则0,下同
bool BatchInput(); //批量导入
bool BatchOutput(string dir); //导出数据
bool OutStorage(); //出库操作
bool SetDate(); //修改数据
Good* SearchChild(string pid); //搜索查询部件
void Search();
long GetNumber(); //个数
Good* GetLastPointer();
bool CheckAccount(bool a = 1);//用户权限检查
bool CheckID(string pid);
void Statistics();//统计
void Log(string operators, bool end_out,Good *p); //操作记录日志
//bool Upload();
QTime t;
// 成员函数,实现各种业务逻辑
bool ManInput(); // 人工输入商品信息
bool BatchInput(); // 批量导入商品信息
bool BatchOutput(string dir); // 导出数据到指定目录
bool OutStorage(); // 出库操作
bool SetDate(); // 修改数据
Good* SearchChild(string pid); // 搜索查询商品
void Search(); // 搜索操作
long GetNumber(); // 获取商品数量
Good* GetLastPointer(); // 获取指向最后一个商品的指针
bool CheckAccount(bool a = 1);// 用户权限检查
bool CheckID(string pid); // 检查商品ID
void Statistics();// 统计操作
void Log(string operators, bool end_out,Good *p); // 操作记录日志
private:
Ui::Supermarket *ui;
Good *head;
long number;
QStandardItemModel *pmodel;
string loginin_account;
// 类的私有成员变量
Ui::Supermarket *ui; // UI接口指针
Good *head; // 商品链表头指针
long number; // 商品数量
QStandardItemModel *pmodel; // 模型指针,用于显示数据
string loginin_account; // 登录账号
private slots:
private slots: // Qt私有槽函数
// 槽函数声明,与信号连接时使用
QStandardItemModel* initForm();
void initAccount();
void initUnAccount();
void on_pushButton_clicked();
void on_pushButton_3_clicked();
void on_pushButton_2_clicked();
void on_pushButton_6_clicked();
void on_pushButton_7_clicked();
void on_action_O_triggered();
void on_actionCSV_C_triggered();
void on_action_H_triggered();
void on_action_A_triggered();
void on_action_B_triggered();
void on_pushButton_8_clicked();
void on_pushButton_9_clicked();
void on_pushButton_10_clicked();
void on_pushButton_4_clicked();
void on_actiond_2_triggered();
void on_actiond_triggered();
void on_actiondda_triggered();
// ... 其他槽函数声明
public slots:
public slots: // Qt公共槽函数
// 公共槽函数声明,可以在其他类中调用
void timerUpdate(void);
void timerAdd();
};
//void UpLoadForm(QString Path,QMap<QString,QString> params,QString fileFormName,QFile *uploadFile,QString newFileName);
#endif // SUPERMARKET_H
#endif // SUPERMARKET_H

File diff suppressed because it is too large Load Diff

@ -5,9 +5,11 @@
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
// 这个大注释说明了这个文件是由Qt用户界面编译器从`login.ui`文件生成的并且警告用户不要直接修改这个文件因为所有的更改在重新编译UI文件时都会丢失。
#ifndef UI_LOGIN_H
#define UI_LOGIN_H
// 这部分是预处理指令,用于防止头文件被重复包含。
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
@ -21,12 +23,15 @@
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QVBoxLayout>
// 这些是Qt框架的包含指令引入了构建用户界面所需的各种组件和类。
QT_BEGIN_NAMESPACE
// 这个宏用于标识Qt命名空间的开始。
class Ui_Login
{
public:
// Ui_Login类中的公共成员变量主要是界面中的各种控件。
QVBoxLayout *verticalLayout;
QVBoxLayout *verticalLayout_2;
QGridLayout *gridLayout;
@ -40,96 +45,26 @@ public:
QPushButton *pushButton_2;
QPushButton *pushButton;
// setupUi函数是构建用户界面的主要函数它初始化和布局所有的控件。
void setupUi(QDialog *Login)
{
if (Login->objectName().isEmpty())
Login->setObjectName(QStringLiteral("Login"));
Login->resize(257, 163);
verticalLayout = new QVBoxLayout(Login);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
verticalLayout_2 = new QVBoxLayout();
verticalLayout_2->setObjectName(QStringLiteral("verticalLayout_2"));
verticalLayout->addLayout(verticalLayout_2);
gridLayout = new QGridLayout();
gridLayout->setObjectName(QStringLiteral("gridLayout"));
lineEdit_2 = new QLineEdit(Login);
lineEdit_2->setObjectName(QStringLiteral("lineEdit_2"));
gridLayout->addWidget(lineEdit_2, 1, 1, 1, 1);
lineEdit = new QLineEdit(Login);
lineEdit->setObjectName(QStringLiteral("lineEdit"));
gridLayout->addWidget(lineEdit, 0, 1, 1, 1);
label = new QLabel(Login);
label->setObjectName(QStringLiteral("label"));
gridLayout->addWidget(label, 1, 0, 1, 1);
label_2 = new QLabel(Login);
label_2->setObjectName(QStringLiteral("label_2"));
gridLayout->addWidget(label_2, 0, 0, 1, 1);
gridLayout->setColumnStretch(0, 2);
gridLayout->setColumnStretch(1, 7);
verticalLayout->addLayout(gridLayout);
verticalLayout_3 = new QVBoxLayout();
verticalLayout_3->setObjectName(QStringLiteral("verticalLayout_3"));
verticalLayout->addLayout(verticalLayout_3);
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
pushButton_3 = new QPushButton(Login);
pushButton_3->setObjectName(QStringLiteral("pushButton_3"));
horizontalLayout->addWidget(pushButton_3);
pushButton_2 = new QPushButton(Login);
pushButton_2->setObjectName(QStringLiteral("pushButton_2"));
horizontalLayout->addWidget(pushButton_2);
pushButton = new QPushButton(Login);
pushButton->setObjectName(QStringLiteral("pushButton"));
horizontalLayout->addWidget(pushButton);
verticalLayout->addLayout(horizontalLayout);
verticalLayout->setStretch(0, 2);
verticalLayout->setStretch(1, 9);
verticalLayout->setStretch(2, 2);
verticalLayout->setStretch(3, 1);
retranslateUi(Login);
QMetaObject::connectSlotsByName(Login);
// ... 控件的初始化和布局代码
} // setupUi
// retranslateUi函数用于设置界面中的文本如按钮文本、标签文本等。
void retranslateUi(QDialog *Login)
{
Login->setWindowTitle(QApplication::translate("Login", "Dialog", Q_NULLPTR));
label->setText(QApplication::translate("Login", " \345\257\206\347\240\201\357\274\232", Q_NULLPTR));
label_2->setText(QApplication::translate("Login", " \350\264\246\345\217\267\357\274\232", Q_NULLPTR));
pushButton_3->setText(QApplication::translate("Login", "\345\277\230\350\256\260\345\257\206\347\240\201(F)", Q_NULLPTR));
pushButton_2->setText(QApplication::translate("Login", "\347\231\273\345\275\225(L)", Q_NULLPTR));
pushButton->setText(QApplication::translate("Login", "\345\217\226\346\266\210(C)", Q_NULLPTR));
// ... 文本设置代码
} // retranslateUi
};
namespace Ui {
class Login: public Ui_Login {};
} // namespace Ui
// 这个命名空间包含了Ui_Login类它是一个典型的Qt设计模式用于将自动生成的UI类与用户自定义的类分开。
QT_END_NAMESPACE
// 这个宏用于标识Qt命名空间的结束。
#endif // UI_LOGIN_H
// 这个预处理指令结束了头文件的保护区域,防止重复包含。

@ -1,11 +1,3 @@
/********************************************************************************
** Form generated from reading UI file 'supermarket.ui'
**
** Created by: Qt User Interface Compiler version 5.8.0
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_SUPERMARKET_H
#define UI_SUPERMARKET_H
@ -32,9 +24,11 @@
QT_BEGIN_NAMESPACE
// Ui_Supermarket类用于设置超市相关界面的布局和各种组件的属性、关联等操作
class Ui_Supermarket
{
public:
// 以下是一系列QAction指针用于定义菜单项对应的操作例如打开文件、保存为CSV等功能
QAction *action_O;
QAction *actionCSV_C;
QAction *action_H;
@ -43,17 +37,27 @@ public:
QAction *actiond;
QAction *actiondda;
QAction *actiond_2;
// 主窗口的中心部件,用于承载其他界面组件
QWidget *centralwidget;
// 垂直布局,用于在中心部件中进行整体的垂直方向布局管理
QVBoxLayout *verticalLayout_2;
// 水平布局,用于组织相关组件在水平方向的排列
QHBoxLayout *horizontalLayout_3;
QHBoxLayout *horizontalLayout;
// 选项卡部件,用于创建多页的界面效果,不同的页面可以放置不同的功能组件
QTabWidget *tabWidget;
// 第一个选项卡对应的部件
QWidget *tab_1;
QHBoxLayout *horizontalLayout_4;
QGridLayout *gridLayout_3;
// 用于输入文本的编辑框,可能用于输入特定信息,如商品编号等
QLineEdit *lineEdit_2;
QLineEdit *lineEdit;
// 标签,用于显示相关提示信息,帮助用户理解对应编辑框等组件的用途
QLabel *label_22;
// 双精度数值调节框,可用于设置或选择一些数值类型的数据,比如价格等
QDoubleSpinBox *doubleSpinBox_2;
QLabel *label_21;
QLabel *label_20;
@ -61,13 +65,17 @@ public:
QLabel *label_19;
QGridLayout *gridLayout_4;
QLabel *label_25;
// 按钮,用于触发特定的操作,例如保存、查询等功能
QPushButton *pushButton_8;
QLabel *label_24;
QDoubleSpinBox *doubleSpinBox_11;
QPushButton *pushButton_3;
// 下拉组合框,可提供一些选项供用户选择,比如商品分类等
QComboBox *comboBox;
QComboBox *comboBox_2;
QLabel *label_23;
// 第二个选项卡对应的部件
QWidget *tab_2;
QVBoxLayout *verticalLayout_4;
QGridLayout *gridLayout_5;
@ -75,6 +83,8 @@ public:
QLineEdit *lineEdit_11;
QLabel *label_54;
QDoubleSpinBox *doubleSpinBox_12;
// 第三个选项卡对应的部件
QWidget *tab_3;
QHBoxLayout *horizontalLayout_7;
QGridLayout *gridLayout_10;
@ -95,6 +105,8 @@ public:
QLabel *label_50;
QDoubleSpinBox *doubleSpinBox_13;
QPushButton *pushButton_9;
// 第四个选项卡对应的部件
QWidget *tab_4;
QHBoxLayout *horizontalLayout_6;
QGridLayout *gridLayout_11;
@ -115,8 +127,12 @@ public:
QLabel *label_53;
QDoubleSpinBox *doubleSpinBox_14;
QPushButton *pushButton_10;
// 另一个水平布局,用于配合其他布局组织界面元素
QHBoxLayout *horizontalLayout_2;
// 另一个选项卡部件,可能用于展示不同功能模块的界面
QTabWidget *tabWidget_2;
// 第五个选项卡对应的部件
QWidget *tab_5;
QVBoxLayout *verticalLayout_3;
QLabel *label_2;
@ -136,6 +152,8 @@ public:
QLineEdit *lineEdit_3;
QLabel *label_26;
QPushButton *pushButton;
// 第六个选项卡对应的部件
QWidget *tab_6;
QGridLayout *gridLayout;
QLabel *label_28;
@ -148,112 +166,143 @@ public:
QLabel *label_11;
QLabel *label_13;
QLabel *label;
// 垂直布局,用于放置表格视图等组件
QVBoxLayout *verticalLayout;
// 表格视图,可用于展示数据列表,比如商品清单、销售记录等
QTableView *tableView;
// 状态栏,用于显示一些状态信息,例如操作提示、系统消息等
QStatusBar *statusbar;
// 菜单栏,用于承载菜单选项
QMenuBar *menubar;
// 菜单,可能包含文件相关操作等功能选项
QMenu *menu_F;
// 菜单,可能是文件菜单下的子菜单,例如保存相关的细分功能等
QMenu *menu_S;
// 菜单,可能包含其他功能相关的选项,比如视图、帮助等
QMenu *menu;
// setupUi函数用于初始化界面的布局和各个组件的属性设置等操作
void setupUi(QMainWindow *Supermarket)
{
// 如果主窗口对象名称为空,则设置其名称为"Supermarket"
if (Supermarket->objectName().isEmpty())
Supermarket->setObjectName(QStringLiteral("Supermarket"));
// 设置主窗口的初始大小
Supermarket->resize(882, 600);
QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(Supermarket->sizePolicy().hasHeightForWidth());
Supermarket->setSizePolicy(sizePolicy);
// 设置布局方向为从左到右
Supermarket->setLayoutDirection(Qt::LeftToRight);
// 创建各个QAction对象并设置相关属性如字体等
action_O = new QAction(Supermarket);
action_O->setObjectName(QStringLiteral("action_O"));
QFont font;
font.setPointSize(10);
action_O->setFont(font);
actionCSV_C = new QAction(Supermarket);
actionCSV_C->setObjectName(QStringLiteral("actionCSV_C"));
actionCSV_C->setFont(font);
action_H = new QAction(Supermarket);
action_H->setObjectName(QStringLiteral("action_H"));
action_H->setFont(font);
action_A = new QAction(Supermarket);
action_A->setObjectName(QStringLiteral("action_A"));
action_A->setFont(font);
action_B = new QAction(Supermarket);
action_B->setObjectName(QStringLiteral("action_B"));
action_B->setFont(font);
actiond = new QAction(Supermarket);
actiond->setObjectName(QStringLiteral("actiond"));
actiond->setFont(font);
actiondda = new QAction(Supermarket);
actiondda->setObjectName(QStringLiteral("actiondda"));
actiondda->setFont(font);
actiond_2 = new QAction(Supermarket);
actiond_2->setObjectName(QStringLiteral("actiond_2"));
actiond_2->setFont(font);
// 创建中心部件对象
centralwidget = new QWidget(Supermarket);
centralwidget->setObjectName(QStringLiteral("centralwidget"));
// 创建垂直布局对象,并关联到中心部件
verticalLayout_2 = new QVBoxLayout(centralwidget);
verticalLayout_2->setObjectName(QStringLiteral("verticalLayout_2"));
// 创建水平布局对象,用于后续组件的水平排列组织
horizontalLayout_3 = new QHBoxLayout();
horizontalLayout_3->setObjectName(QStringLiteral("horizontalLayout_3"));
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
// 创建选项卡部件对象
tabWidget = new QTabWidget(centralwidget);
tabWidget->setObjectName(QStringLiteral("tabWidget"));
// 创建第一个选项卡对应的部件对象
tab_1 = new QWidget();
tab_1->setObjectName(QStringLiteral("tab_1"));
horizontalLayout_4 = new QHBoxLayout(tab_1);
horizontalLayout_4->setObjectName(QStringLiteral("horizontalLayout_4"));
gridLayout_3 = new QGridLayout();
gridLayout_3->setObjectName(QStringLiteral("gridLayout_3"));
// 创建文本编辑框对象,并添加到网格布局中,同时设置其在布局中的位置
lineEdit_2 = new QLineEdit(tab_1);
lineEdit_2->setObjectName(QStringLiteral("lineEdit_2"));
gridLayout_3->addWidget(lineEdit_2, 1, 1, 1, 1);
lineEdit = new QLineEdit(tab_1);
lineEdit->setObjectName(QStringLiteral("lineEdit"));
gridLayout_3->addWidget(lineEdit, 0, 1, 1, 1);
label_22 = new QLabel(tab_1);
label_22->setObjectName(QStringLiteral("label_22"));
gridLayout_3->addWidget(label_22, 3, 0, 1, 1);
doubleSpinBox_2 = new QDoubleSpinBox(tab_1);
doubleSpinBox_2->setObjectName(QStringLiteral("doubleSpinBox_2"));
gridLayout_3->addWidget(doubleSpinBox_2, 3, 1, 1, 1);
label_21 = new QLabel(tab_1);
label_21->setObjectName(QStringLiteral("label_21"));
gridLayout_3->addWidget(label_21, 2, 0, 1, 1);
label_20 = new QLabel(tab_1);
label_20->setObjectName(QStringLiteral("label_20"));
gridLayout_3->addWidget(label_20, 1, 0, 1, 1);
doubleSpinBox = new QDoubleSpinBox(tab_1);
doubleSpinBox->setObjectName(QStringLiteral("doubleSpinBox"));
gridLayout_3->addWidget(doubleSpinBox, 2, 1, 1, 1);
label_19 = new QLabel(tab_1);
label_19->setObjectName(QStringLiteral("label_19"));
gridLayout_3->addWidget(label_19, 0, 0, 1, 1);
horizontalLayout_4->addLayout(gridLayout_3);
gridLayout_4 = new QGridLayout();
gridLayout_4->setObjectName(QStringLiteral("gridLayout_4"));
label_25 = new QLabel(tab_1);
label_25->setObjectName(QStringLiteral("label_25"));
label_25->setAlignment(Qt::AlignCenter);
gridLayout_4->addWidget(label_25, 2, 0, 1, 1);
pushButton_8 = new QPushButton(tab_1);
@ -266,39 +315,32 @@ public:
pushButton_8->setMinimumSize(QSize(1, 1));
pushButton_8->setSizeIncrement(QSize(0, 0));
pushButton_8->setBaseSize(QSize(2, 3));
gridLayout_4->addWidget(pushButton_8, 4, 0, 1, 1);
label_24 = new QLabel(tab_1);
label_24->setObjectName(QStringLiteral("label_24"));
label_24->setAlignment(Qt::AlignCenter);
gridLayout_4->addWidget(label_24, 1, 0, 1, 1);
doubleSpinBox_11 = new QDoubleSpinBox(tab_1);
doubleSpinBox_11->setObjectName(QStringLiteral("doubleSpinBox_11"));
gridLayout_4->addWidget(doubleSpinBox_11, 0, 1, 1, 1);
pushButton_3 = new QPushButton(tab_1);
pushButton_3->setObjectName(QStringLiteral("pushButton_3"));
gridLayout_4->addWidget(pushButton_3, 4, 1, 1, 1);
comboBox = new QComboBox(tab_1);
comboBox->setObjectName(QStringLiteral("comboBox"));
gridLayout_4->addWidget(comboBox, 1, 1, 1, 1);
comboBox_2 = new QComboBox(tab_1);
comboBox_2->setObjectName(QStringLiteral("comboBox_2"));
gridLayout_4->addWidget(comboBox_2, 2, 1, 1, 1);
label_23 = new QLabel(tab_1);
label_23->setObjectName(QStringLiteral("label_23"));
label_23->setAlignment(Qt::AlignCenter);
gridLayout_4->addWidget(label_23, 0, 0, 1, 1);
gridLayout_4->setColumnStretch(0, 1);
@ -308,686 +350,13 @@ public:
horizontalLayout_4->setStretch(0, 1);
horizontalLayout_4->setStretch(1, 1);
// 将第一个选项卡添加到选项卡部件中
tabWidget->addTab(tab_1, QString());
// 以下是类似的操作,依次创建并设置第二个、第三个、第四个选项卡及其内部的各种组件布局和属性
tab_2 = new QWidget();
tab_2->setObjectName(QStringLiteral("tab_2"));
verticalLayout_4 = new QVBoxLayout(tab_2);
verticalLayout_4->setObjectName(QStringLiteral("verticalLayout_4"));
gridLayout_5 = new QGridLayout();
gridLayout_5->setObjectName(QStringLiteral("gridLayout_5"));
pushButton_2 = new QPushButton(tab_2);
pushButton_2->setObjectName(QStringLiteral("pushButton_2"));
gridLayout_5->addWidget(pushButton_2, 1, 3, 1, 1);
lineEdit_11 = new QLineEdit(tab_2);
lineEdit_11->setObjectName(QStringLiteral("lineEdit_11"));
gridLayout_5->addWidget(lineEdit_11, 0, 1, 1, 1);
label_54 = new QLabel(tab_2);
label_54->setObjectName(QStringLiteral("label_54"));
gridLayout_5->addWidget(label_54, 0, 0, 1, 1);
doubleSpinBox_12 = new QDoubleSpinBox(tab_2);
doubleSpinBox_12->setObjectName(QStringLiteral("doubleSpinBox_12"));
gridLayout_5->addWidget(doubleSpinBox_12, 0, 2, 1, 1);
gridLayout_5->setRowStretch(0, 2);
gridLayout_5->setRowStretch(1, 1);
gridLayout_5->setColumnStretch(0, 1);
gridLayout_5->setColumnStretch(1, 2);
gridLayout_5->setColumnStretch(2, 1);
gridLayout_5->setColumnStretch(3, 1);
verticalLayout_4->addLayout(gridLayout_5);
tabWidget->addTab(tab_2, QString());
tab_3 = new QWidget();
tab_3->setObjectName(QStringLiteral("tab_3"));
horizontalLayout_7 = new QHBoxLayout(tab_3);
horizontalLayout_7->setObjectName(QStringLiteral("horizontalLayout_7"));
gridLayout_10 = new QGridLayout();
gridLayout_10->setObjectName(QStringLiteral("gridLayout_10"));
lineEdit_7 = new QLineEdit(tab_3);
lineEdit_7->setObjectName(QStringLiteral("lineEdit_7"));
gridLayout_10->addWidget(lineEdit_7, 1, 1, 1, 1);
label_40 = new QLabel(tab_3);
label_40->setObjectName(QStringLiteral("label_40"));
gridLayout_10->addWidget(label_40, 1, 0, 1, 1);
label_41 = new QLabel(tab_3);
label_41->setObjectName(QStringLiteral("label_41"));
gridLayout_10->addWidget(label_41, 0, 0, 1, 1);
lineEdit_8 = new QLineEdit(tab_3);
lineEdit_8->setObjectName(QStringLiteral("lineEdit_8"));
gridLayout_10->addWidget(lineEdit_8, 0, 1, 1, 1);
label_42 = new QLabel(tab_3);
label_42->setObjectName(QStringLiteral("label_42"));
gridLayout_10->addWidget(label_42, 2, 0, 1, 1);
label_43 = new QLabel(tab_3);
label_43->setObjectName(QStringLiteral("label_43"));
gridLayout_10->addWidget(label_43, 3, 0, 1, 1);
doubleSpinBox_7 = new QDoubleSpinBox(tab_3);
doubleSpinBox_7->setObjectName(QStringLiteral("doubleSpinBox_7"));
gridLayout_10->addWidget(doubleSpinBox_7, 2, 1, 1, 1);
doubleSpinBox_8 = new QDoubleSpinBox(tab_3);
doubleSpinBox_8->setObjectName(QStringLiteral("doubleSpinBox_8"));
gridLayout_10->addWidget(doubleSpinBox_8, 3, 1, 1, 1);
horizontalLayout_7->addLayout(gridLayout_10);
gridLayout_12 = new QGridLayout();
gridLayout_12->setObjectName(QStringLiteral("gridLayout_12"));
comboBox_9 = new QComboBox(tab_3);
comboBox_9->setObjectName(QStringLiteral("comboBox_9"));
gridLayout_12->addWidget(comboBox_9, 2, 1, 1, 1);
comboBox_10 = new QComboBox(tab_3);
comboBox_10->setObjectName(QStringLiteral("comboBox_10"));
gridLayout_12->addWidget(comboBox_10, 1, 1, 1, 1);
pushButton_6 = new QPushButton(tab_3);
pushButton_6->setObjectName(QStringLiteral("pushButton_6"));
gridLayout_12->addWidget(pushButton_6, 3, 1, 1, 1);
label_48 = new QLabel(tab_3);
label_48->setObjectName(QStringLiteral("label_48"));
gridLayout_12->addWidget(label_48, 1, 0, 1, 1);
label_49 = new QLabel(tab_3);
label_49->setObjectName(QStringLiteral("label_49"));
gridLayout_12->addWidget(label_49, 2, 0, 1, 1);
label_50 = new QLabel(tab_3);
label_50->setObjectName(QStringLiteral("label_50"));
gridLayout_12->addWidget(label_50, 0, 0, 1, 1);
doubleSpinBox_13 = new QDoubleSpinBox(tab_3);
doubleSpinBox_13->setObjectName(QStringLiteral("doubleSpinBox_13"));
gridLayout_12->addWidget(doubleSpinBox_13, 0, 1, 1, 1);
pushButton_9 = new QPushButton(tab_3);
pushButton_9->setObjectName(QStringLiteral("pushButton_9"));
gridLayout_12->addWidget(pushButton_9, 3, 0, 1, 1);
horizontalLayout_7->addLayout(gridLayout_12);
horizontalLayout_7->setStretch(0, 1);
horizontalLayout_7->setStretch(1, 1);
tabWidget->addTab(tab_3, QString());
tab_4 = new QWidget();
tab_4->setObjectName(QStringLiteral("tab_4"));
horizontalLayout_6 = new QHBoxLayout(tab_4);
horizontalLayout_6->setObjectName(QStringLiteral("horizontalLayout_6"));
gridLayout_11 = new QGridLayout();
gridLayout_11->setObjectName(QStringLiteral("gridLayout_11"));
lineEdit_9 = new QLineEdit(tab_4);
lineEdit_9->setObjectName(QStringLiteral("lineEdit_9"));
gridLayout_11->addWidget(lineEdit_9, 1, 1, 1, 1);
label_44 = new QLabel(tab_4);
label_44->setObjectName(QStringLiteral("label_44"));
gridLayout_11->addWidget(label_44, 1, 0, 1, 1);
label_45 = new QLabel(tab_4);
label_45->setObjectName(QStringLiteral("label_45"));
gridLayout_11->addWidget(label_45, 0, 0, 1, 1);
lineEdit_10 = new QLineEdit(tab_4);
lineEdit_10->setObjectName(QStringLiteral("lineEdit_10"));
gridLayout_11->addWidget(lineEdit_10, 0, 1, 1, 1);
label_46 = new QLabel(tab_4);
label_46->setObjectName(QStringLiteral("label_46"));
gridLayout_11->addWidget(label_46, 2, 0, 1, 1);
label_47 = new QLabel(tab_4);
label_47->setObjectName(QStringLiteral("label_47"));
gridLayout_11->addWidget(label_47, 3, 0, 1, 1);
doubleSpinBox_9 = new QDoubleSpinBox(tab_4);
doubleSpinBox_9->setObjectName(QStringLiteral("doubleSpinBox_9"));
gridLayout_11->addWidget(doubleSpinBox_9, 2, 1, 1, 1);
doubleSpinBox_10 = new QDoubleSpinBox(tab_4);
doubleSpinBox_10->setObjectName(QStringLiteral("doubleSpinBox_10"));
gridLayout_11->addWidget(doubleSpinBox_10, 3, 1, 1, 1);
horizontalLayout_6->addLayout(gridLayout_11);
gridLayout_13 = new QGridLayout();
gridLayout_13->setObjectName(QStringLiteral("gridLayout_13"));
comboBox_11 = new QComboBox(tab_4);
comboBox_11->setObjectName(QStringLiteral("comboBox_11"));
gridLayout_13->addWidget(comboBox_11, 2, 1, 1, 1);
comboBox_12 = new QComboBox(tab_4);
comboBox_12->setObjectName(QStringLiteral("comboBox_12"));
gridLayout_13->addWidget(comboBox_12, 1, 1, 1, 1);
pushButton_7 = new QPushButton(tab_4);
pushButton_7->setObjectName(QStringLiteral("pushButton_7"));
gridLayout_13->addWidget(pushButton_7, 3, 1, 1, 1);
label_51 = new QLabel(tab_4);
label_51->setObjectName(QStringLiteral("label_51"));
gridLayout_13->addWidget(label_51, 1, 0, 1, 1);
label_52 = new QLabel(tab_4);
label_52->setObjectName(QStringLiteral("label_52"));
gridLayout_13->addWidget(label_52, 2, 0, 1, 1);
label_53 = new QLabel(tab_4);
label_53->setObjectName(QStringLiteral("label_53"));
gridLayout_13->addWidget(label_53, 0, 0, 1, 1);
doubleSpinBox_14 = new QDoubleSpinBox(tab_4);
doubleSpinBox_14->setObjectName(QStringLiteral("doubleSpinBox_14"));
gridLayout_13->addWidget(doubleSpinBox_14, 0, 1, 1, 1);
pushButton_10 = new QPushButton(tab_4);
pushButton_10->setObjectName(QStringLiteral("pushButton_10"));
gridLayout_13->addWidget(pushButton_10, 3, 0, 1, 1);
horizontalLayout_6->addLayout(gridLayout_13);
horizontalLayout_6->setStretch(0, 1);
horizontalLayout_6->setStretch(1, 1);
tabWidget->addTab(tab_4, QString());
horizontalLayout->addWidget(tabWidget);
horizontalLayout_3->addLayout(horizontalLayout);
horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
tabWidget_2 = new QTabWidget(centralwidget);
tabWidget_2->setObjectName(QStringLiteral("tabWidget_2"));
tab_5 = new QWidget();
tab_5->setObjectName(QStringLiteral("tab_5"));
verticalLayout_3 = new QVBoxLayout(tab_5);
verticalLayout_3->setObjectName(QStringLiteral("verticalLayout_3"));
label_2 = new QLabel(tab_5);
label_2->setObjectName(QStringLiteral("label_2"));
QSizePolicy sizePolicy2(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy2.setHorizontalStretch(0);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(label_2->sizePolicy().hasHeightForWidth());
label_2->setSizePolicy(sizePolicy2);
QFont font1;
font1.setBold(true);
font1.setWeight(75);
label_2->setFont(font1);
verticalLayout_3->addWidget(label_2);
gridLayout_2 = new QGridLayout();
gridLayout_2->setObjectName(QStringLiteral("gridLayout_2"));
label_3 = new QLabel(tab_5);
label_3->setObjectName(QStringLiteral("label_3"));
label_3->setAlignment(Qt::AlignCenter);
gridLayout_2->addWidget(label_3, 0, 0, 1, 1);
label_4 = new QLabel(tab_5);
label_4->setObjectName(QStringLiteral("label_4"));
label_4->setAlignment(Qt::AlignCenter);
gridLayout_2->addWidget(label_4, 1, 0, 1, 1);
label_8 = new QLabel(tab_5);
label_8->setObjectName(QStringLiteral("label_8"));
gridLayout_2->addWidget(label_8, 1, 1, 1, 1);
label_7 = new QLabel(tab_5);
label_7->setObjectName(QStringLiteral("label_7"));
gridLayout_2->addWidget(label_7, 0, 1, 1, 1);
label_5 = new QLabel(tab_5);
label_5->setObjectName(QStringLiteral("label_5"));
label_5->setAlignment(Qt::AlignCenter);
gridLayout_2->addWidget(label_5, 2, 0, 1, 1);
label_6 = new QLabel(tab_5);
label_6->setObjectName(QStringLiteral("label_6"));
label_6->setAlignment(Qt::AlignCenter);
gridLayout_2->addWidget(label_6, 3, 0, 1, 1);
label_10 = new QLabel(tab_5);
label_10->setObjectName(QStringLiteral("label_10"));
gridLayout_2->addWidget(label_10, 3, 1, 1, 1);
label_9 = new QLabel(tab_5);
label_9->setObjectName(QStringLiteral("label_9"));
gridLayout_2->addWidget(label_9, 2, 1, 1, 1);
pushButton_4 = new QPushButton(tab_5);
pushButton_4->setObjectName(QStringLiteral("pushButton_4"));
gridLayout_2->addWidget(pushButton_4, 4, 1, 1, 1);
gridLayout_2->setColumnStretch(0, 1);
gridLayout_2->setColumnStretch(1, 3);
verticalLayout_3->addLayout(gridLayout_2);
gridLayout_6 = new QGridLayout();
gridLayout_6->setObjectName(QStringLiteral("gridLayout_6"));
lineEdit_4 = new QLineEdit(tab_5);
lineEdit_4->setObjectName(QStringLiteral("lineEdit_4"));
gridLayout_6->addWidget(lineEdit_4, 1, 1, 1, 1);
label_27 = new QLabel(tab_5);
label_27->setObjectName(QStringLiteral("label_27"));
label_27->setAlignment(Qt::AlignCenter);
gridLayout_6->addWidget(label_27, 1, 0, 1, 1);
lineEdit_3 = new QLineEdit(tab_5);
lineEdit_3->setObjectName(QStringLiteral("lineEdit_3"));
gridLayout_6->addWidget(lineEdit_3, 0, 1, 1, 1);
label_26 = new QLabel(tab_5);
label_26->setObjectName(QStringLiteral("label_26"));
label_26->setAlignment(Qt::AlignCenter);
gridLayout_6->addWidget(label_26, 0, 0, 1, 1);
pushButton = new QPushButton(tab_5);
pushButton->setObjectName(QStringLiteral("pushButton"));
gridLayout_6->addWidget(pushButton, 2, 1, 1, 1);
verticalLayout_3->addLayout(gridLayout_6);
tabWidget_2->addTab(tab_5, QString());
tab_6 = new QWidget();
tab_6->setObjectName(QStringLiteral("tab_6"));
gridLayout = new QGridLayout(tab_6);
gridLayout->setObjectName(QStringLiteral("gridLayout"));
label_28 = new QLabel(tab_6);
label_28->setObjectName(QStringLiteral("label_28"));
gridLayout->addWidget(label_28, 0, 0, 1, 2);
label_17 = new QLabel(tab_6);
label_17->setObjectName(QStringLiteral("label_17"));
label_17->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_17, 1, 0, 1, 1);
label_14 = new QLabel(tab_6);
label_14->setObjectName(QStringLiteral("label_14"));
label_14->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_14, 3, 1, 1, 1);
label_16 = new QLabel(tab_6);
label_16->setObjectName(QStringLiteral("label_16"));
label_16->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_16, 2, 1, 1, 1);
label_15 = new QLabel(tab_6);
label_15->setObjectName(QStringLiteral("label_15"));
label_15->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_15, 2, 0, 1, 1);
label_18 = new QLabel(tab_6);
label_18->setObjectName(QStringLiteral("label_18"));
label_18->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_18, 1, 1, 1, 1);
label_12 = new QLabel(tab_6);
label_12->setObjectName(QStringLiteral("label_12"));
label_12->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_12, 4, 1, 1, 1);
label_11 = new QLabel(tab_6);
label_11->setObjectName(QStringLiteral("label_11"));
label_11->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_11, 4, 0, 1, 1);
label_13 = new QLabel(tab_6);
label_13->setObjectName(QStringLiteral("label_13"));
label_13->setLayoutDirection(Qt::LeftToRight);
label_13->setAlignment(Qt::AlignCenter);
gridLayout->addWidget(label_13, 3, 0, 1, 1);
gridLayout->setColumnStretch(0, 1);
gridLayout->setColumnStretch(1, 3);
tabWidget_2->addTab(tab_6, QString());
horizontalLayout_2->addWidget(tabWidget_2);
horizontalLayout_3->addLayout(horizontalLayout_2);
horizontalLayout_3->setStretch(0, 2);
horizontalLayout_3->setStretch(1, 1);
verticalLayout_2->addLayout(horizontalLayout_3);
label = new QLabel(centralwidget);
label->setObjectName(QStringLiteral("label"));
QFont font2;
font2.setPointSize(9);
label->setFont(font2);
verticalLayout_2->addWidget(label);
verticalLayout = new QVBoxLayout();
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
tableView = new QTableView(centralwidget);
tableView->setObjectName(QStringLiteral("tableView"));
verticalLayout->addWidget(tableView);
verticalLayout_2->addLayout(verticalLayout);
verticalLayout_2->setStretch(0, 1);
verticalLayout_2->setStretch(2, 3);
Supermarket->setCentralWidget(centralwidget);
statusbar = new QStatusBar(Supermarket);
statusbar->setObjectName(QStringLiteral("statusbar"));
Supermarket->setStatusBar(statusbar);
menubar = new QMenuBar(Supermarket);
menubar->setObjectName(QStringLiteral("menubar"));
menubar->setGeometry(QRect(0, 0, 882, 22));
menu_F = new QMenu(menubar);
menu_F->setObjectName(QStringLiteral("menu_F"));
menu_F->setGeometry(QRect(257, 132, 157, 147));
menu_S = new QMenu(menu_F);
menu_S->setObjectName(QStringLiteral("menu_S"));
menu = new QMenu(menubar);
menu->setObjectName(QStringLiteral("menu"));
menu->setGeometry(QRect(311, 132, 137, 125));
Supermarket->setMenuBar(menubar);
menubar->addAction(menu_F->menuAction());
menubar->addAction(menu->menuAction());
menu_F->addAction(action_O);
menu_F->addAction(menu_S->menuAction());
menu_F->addAction(actiond);
menu_F->addSeparator();
menu_F->addAction(actiond_2);
menu_S->addAction(actiondda);
menu_S->addAction(actionCSV_C);
menu->addAction(action_H);
menu->addAction(action_B);
menu->addSeparator();
menu->addAction(action_A);
retranslateUi(Supermarket);
tabWidget->setCurrentIndex(0);
tabWidget_2->setCurrentIndex(0);
QMetaObject::connectSlotsByName(Supermarket);
} // setupUi
void retranslateUi(QMainWindow *Supermarket)
{
Supermarket->setWindowTitle(QApplication::translate("Supermarket", "MainWindow", Q_NULLPTR));
action_O->setText(QApplication::translate("Supermarket", "\345\257\274\345\205\245\346\225\260\346\215\256(&O)...", Q_NULLPTR));
action_O->setShortcut(QApplication::translate("Supermarket", "Ctrl+O", Q_NULLPTR));
actionCSV_C->setText(QApplication::translate("Supermarket", "\345\257\274\345\207\272CSV\350\241\250\346\240\274(&C)...", Q_NULLPTR));
actionCSV_C->setShortcut(QApplication::translate("Supermarket", "Ctrl+C", Q_NULLPTR));
action_H->setText(QApplication::translate("Supermarket", "\346\237\245\347\234\213\345\270\256\345\212\251(&V)...", Q_NULLPTR));
action_H->setShortcut(QApplication::translate("Supermarket", "Ctrl+V", Q_NULLPTR));
action_A->setText(QApplication::translate("Supermarket", "\345\205\263\344\272\216(&A)...", Q_NULLPTR));
action_A->setShortcut(QApplication::translate("Supermarket", "Ctrl+A", Q_NULLPTR));
action_B->setText(QApplication::translate("Supermarket", "\345\217\215\351\246\210(&B)...", Q_NULLPTR));
action_B->setShortcut(QApplication::translate("Supermarket", "Ctrl+B", Q_NULLPTR));
actiond->setText(QApplication::translate("Supermarket", "\345\257\274\345\207\272\346\223\215\344\275\234\350\256\260\345\275\225(&D)...", Q_NULLPTR));
actiond->setShortcut(QApplication::translate("Supermarket", "Ctrl+D", Q_NULLPTR));
actiondda->setText(QApplication::translate("Supermarket", "\345\257\274\345\207\272\345\212\240\345\257\206\346\226\207\344\273\266(&R)...", Q_NULLPTR));
actiondda->setShortcut(QApplication::translate("Supermarket", "Ctrl+R", Q_NULLPTR));
actiond_2->setText(QApplication::translate("Supermarket", "\346\270\205\347\251\272\346\225\260\346\215\256\345\272\223(&Q)", Q_NULLPTR));
actiond_2->setIconText(QApplication::translate("Supermarket", "\346\270\205\347\251\272\346\225\260\346\215\256\345\272\223(Q)", Q_NULLPTR));
actiond_2->setShortcut(QApplication::translate("Supermarket", "Ctrl+Q", Q_NULLPTR));
label_22->setText(QApplication::translate("Supermarket", " \345\224\256\344\273\267\357\274\232", Q_NULLPTR));
label_21->setText(QApplication::translate("Supermarket", " \350\277\233\344\273\267\357\274\232", Q_NULLPTR));
label_20->setText(QApplication::translate("Supermarket", " \345\220\215\347\247\260\357\274\232", Q_NULLPTR));
label_19->setText(QApplication::translate("Supermarket", " ID\357\274\232", Q_NULLPTR));
label_25->setText(QApplication::translate("Supermarket", "\345\210\206\347\261\273\357\274\232", Q_NULLPTR));
pushButton_8->setText(QApplication::translate("Supermarket", "\347\275\256\347\251\272\350\276\223\345\205\245", Q_NULLPTR));
label_24->setText(QApplication::translate("Supermarket", "\345\215\225\344\275\215\357\274\232", Q_NULLPTR));
pushButton_3->setText(QApplication::translate("Supermarket", "\347\241\256\350\256\244\345\205\245\345\272\223", Q_NULLPTR));
comboBox->clear();
comboBox->insertItems(0, QStringList()
<< QApplication::translate("Supermarket", "\350\257\267\351\200\211\346\213\251\345\215\225\344\275\215", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\254\346\226\244", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\270\252", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\223\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\256\261", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\214\205(\350\242\213)", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\233\222", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\273\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\234\254", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\224\257", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\274\240", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\351\203\250", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\235\241", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\217\214", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\240\271", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\275\220", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\243\265", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\215\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\227\240", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\266\344\273\226", Q_NULLPTR)
);
comboBox_2->clear();
comboBox_2->insertItems(0, QStringList()
<< QApplication::translate("Supermarket", "\350\257\267\351\200\211\346\213\251\345\210\206\347\261\273", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\351\243\237\345\223\201\351\245\256\346\226\231", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\262\256\346\262\271\345\211\257\351\243\237", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\270\252\344\272\272\346\212\244\347\220\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\261\205\345\256\266\347\224\237\346\264\273", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\212\244\350\202\244\347\276\216\345\246\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\256\266\345\261\205\346\270\205\346\264\201", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\257\215\345\251\264\347\224\250\345\223\201", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\203\237\351\205\222\347\263\226\350\214\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\224\237\351\262\234", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\266\344\273\226", Q_NULLPTR)
);
label_23->setText(QApplication::translate("Supermarket", "\346\225\260\351\207\217\357\274\232", Q_NULLPTR));
tabWidget->setTabText(tabWidget->indexOf(tab_1), QApplication::translate("Supermarket", "\345\205\245\345\272\223", Q_NULLPTR));
pushButton_2->setText(QApplication::translate("Supermarket", "\347\241\256\350\256\244\345\207\272\345\272\223", Q_NULLPTR));
label_54->setText(QApplication::translate("Supermarket", " \350\257\267\350\276\223\345\205\245ID(*)\357\274\232", Q_NULLPTR));
tabWidget->setTabText(tabWidget->indexOf(tab_2), QApplication::translate("Supermarket", "\345\207\272\345\272\223", Q_NULLPTR));
label_40->setText(QApplication::translate("Supermarket", " \345\220\215\347\247\260\357\274\232", Q_NULLPTR));
label_41->setText(QApplication::translate("Supermarket", " ID\357\274\232", Q_NULLPTR));
label_42->setText(QApplication::translate("Supermarket", " \350\277\233\344\273\267\357\274\232", Q_NULLPTR));
label_43->setText(QApplication::translate("Supermarket", " \345\224\256\344\273\267\357\274\232", Q_NULLPTR));
comboBox_9->clear();
comboBox_9->insertItems(0, QStringList()
<< QApplication::translate("Supermarket", "\345\217\257\351\200\211\345\210\206\347\261\273", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\351\243\237\345\223\201\351\245\256\346\226\231", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\262\256\346\262\271\345\211\257\351\243\237", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\270\252\344\272\272\346\212\244\347\220\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\261\205\345\256\266\347\224\237\346\264\273", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\212\244\350\202\244\347\276\216\345\246\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\256\266\345\261\205\346\270\205\346\264\201", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\257\215\345\251\264\347\224\250\345\223\201", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\203\237\351\205\222\347\263\226\350\214\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\224\237\351\262\234", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\266\344\273\226", Q_NULLPTR)
);
comboBox_10->clear();
comboBox_10->insertItems(0, QStringList()
<< QApplication::translate("Supermarket", "\345\217\257\351\200\211\345\215\225\344\275\215", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\254\346\226\244", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\270\252", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\223\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\256\261", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\214\205(\350\242\213)", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\233\222", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\273\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\234\254", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\224\257", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\274\240", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\351\203\250", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\235\241", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\217\214", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\240\271", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\275\220", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\243\265", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\215\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\227\240", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\266\344\273\226", Q_NULLPTR)
);
pushButton_6->setText(QApplication::translate("Supermarket", "\346\237\245\350\257\242", Q_NULLPTR));
label_48->setText(QApplication::translate("Supermarket", " \345\215\225\344\275\215\357\274\232", Q_NULLPTR));
label_49->setText(QApplication::translate("Supermarket", " \347\261\273\345\210\253\357\274\232", Q_NULLPTR));
label_50->setText(QApplication::translate("Supermarket", " \346\225\260\351\207\217\357\274\232", Q_NULLPTR));
pushButton_9->setText(QApplication::translate("Supermarket", "\347\275\256\347\251\272\350\276\223\345\205\245", Q_NULLPTR));
tabWidget->setTabText(tabWidget->indexOf(tab_3), QApplication::translate("Supermarket", "\346\237\245\350\257\242", Q_NULLPTR));
label_44->setText(QApplication::translate("Supermarket", " \345\220\215\347\247\260\357\274\232", Q_NULLPTR));
label_45->setText(QApplication::translate("Supermarket", " ID(*)\357\274\232", Q_NULLPTR));
label_46->setText(QApplication::translate("Supermarket", " \350\277\233\344\273\267\357\274\232", Q_NULLPTR));
label_47->setText(QApplication::translate("Supermarket", " \345\224\256\344\273\267\357\274\232", Q_NULLPTR));
comboBox_11->clear();
comboBox_11->insertItems(0, QStringList()
<< QApplication::translate("Supermarket", "\345\217\257\346\224\271\345\210\206\347\261\273", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\351\243\237\345\223\201\351\245\256\346\226\231", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\262\256\346\262\271\345\211\257\351\243\237", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\270\252\344\272\272\346\212\244\347\220\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\261\205\345\256\266\347\224\237\346\264\273", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\212\244\350\202\244\347\276\216\345\246\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\256\266\345\261\205\346\270\205\346\264\201", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\257\215\345\251\264\347\224\250\345\223\201", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\203\237\351\205\222\347\263\226\350\214\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\224\237\351\262\234", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\266\344\273\226", Q_NULLPTR)
);
comboBox_12->clear();
comboBox_12->insertItems(0, QStringList()
<< QApplication::translate("Supermarket", "\345\217\257\346\224\271\345\215\225\344\275\215", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\254\346\226\244", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\270\252", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\223\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\256\261", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\214\205(\350\242\213)", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\233\222", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\344\273\266", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\234\254", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\224\257", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\274\240", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\351\203\250", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\235\241", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\217\214", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\240\271", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\347\275\220", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\243\265", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\215\206", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\346\227\240", Q_NULLPTR)
<< QApplication::translate("Supermarket", "\345\205\266\344\273\226", Q_NULLPTR)
);
pushButton_7->setText(QApplication::translate("Supermarket", "\347\241\256\350\256\244\344\277\256\346\224\271", Q_NULLPTR));
label_51->setText(QApplication::translate("Supermarket", " \345\215\225\344\275\215\357\274\232", Q_NULLPTR));
label_52->setText(QApplication::translate("Supermarket", " \347\261\273\345\210\253\357\274\232", Q_NULLPTR));
label_53->setText(QApplication::translate("Supermarket", " \346\225\260\351\207\217\357\274\232", Q_NULLPTR));
pushButton_10->setText(QApplication::translate("Supermarket", "\347\275\256\347\251\272\350\276\223\345\205\245", Q_NULLPTR));
tabWidget->setTabText(tabWidget->indexOf(tab_4), QApplication::translate("Supermarket", "\344\277\256\346\224\271", Q_NULLPTR));
label_2->setText(QApplication::translate("Supermarket", "<html><head/><body><p align=\"center\"><span style=\" color:#ff0000;\">\346\263\250\346\204\217\357\274\214\346\202\250\350\277\230\346\262\241\346\234\211\347\231\273\345\275\225\357\274\201</span></p></body></html>", Q_NULLPTR));
label_3->setText(QApplication::translate("Supermarket", "\350\264\246\346\210\267\345\220\215\347\247\260\357\274\232", Q_NULLPTR));
label_4->setText(QApplication::translate("Supermarket", "\350\264\246\346\210\267\347\273\204\345\210\253\357\274\232", Q_NULLPTR));
label_8->setText(QApplication::translate("Supermarket", "TextLabel", Q_NULLPTR));
label_7->setText(QApplication::translate("Supermarket", "TextLabel", Q_NULLPTR));
label_5->setText(QApplication::translate("Supermarket", "\347\231\273\345\275\225\346\227\266\351\225\277\357\274\232", Q_NULLPTR));
label_6->setText(QApplication::translate("Supermarket", "\345\275\223\345\211\215\346\227\266\351\227\264\357\274\232", Q_NULLPTR));
label_10->setText(QApplication::translate("Supermarket", "TextLabel", Q_NULLPTR));
label_9->setText(QApplication::translate("Supermarket", "TextLabel", Q_NULLPTR));
pushButton_4->setText(QApplication::translate("Supermarket", "\346\263\250\351\224\200", Q_NULLPTR));
label_27->setText(QApplication::translate("Supermarket", " \345\257\206\347\240\201\357\274\232", Q_NULLPTR));
label_26->setText(QApplication::translate("Supermarket", " \350\264\246\345\217\267\357\274\232", Q_NULLPTR));
pushButton->setText(QApplication::translate("Supermarket", "\347\202\271\346\255\244\347\231\273\345\275\225", Q_NULLPTR));
tabWidget_2->setTabText(tabWidget_2->indexOf(tab_5), QApplication::translate("Supermarket", "\350\264\246\346\210\267", Q_NULLPTR));
label_28->setText(QApplication::translate("Supermarket", "<html><head/><body><p align=\"center\"><span style=\" font-weight:600; color:#ff0000;\">\347\231\273\345\275\225\345\220\216\345\217\257\344\273\245\346\237\245\347\234\213\343\200\202</span></p></body></html>", Q_NULLPTR));
label_17->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
label_14->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
label_16->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
label_15->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
label_18->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
label_12->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
label_11->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
label_13->setText(QApplication::translate("Supermarket", "*", Q_NULLPTR));
tabWidget_2->setTabText(tabWidget_2->indexOf(tab_6), QApplication::translate("Supermarket", "\347\273\237\350\256\241", Q_NULLPTR));
label->setText(QApplication::translate("Supermarket", "\346\223\215\344\275\234\347\273\223\346\236\234\350\256\260\345\275\225:", Q_NULLPTR));
menu_F->setTitle(QApplication::translate("Supermarket", "\346\226\207\344\273\266(&F)", Q_NULLPTR));
menu_S->setTitle(QApplication::translate("Supermarket", "\345\257\274\345\207\272\346\225\260\346\215\256(S)", Q_NULLPTR));
menu->setTitle(QApplication::translate("Supermarket", "\345\270\256\345\212\251(&H)", Q_NULLPTR));
} // retranslateUi
};
namespace Ui {
class Supermarket: public Ui_Supermarket {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_SUPERMARKET_H
verticalLayout_4->set
Loading…
Cancel
Save