增加了修改路线窗口ModifyWidget和路线确认界面ConfirmWidget

master
DongYanqi1029 4 years ago
parent baaa2a60c1
commit e5773fff1a

@ -22,6 +22,7 @@ SOURCES += \
customizewidget.cpp \ customizewidget.cpp \
databaseconnector.cpp \ databaseconnector.cpp \
favoritewidget.cpp \ favoritewidget.cpp \
feedbackwidget.cpp \
historywidget.cpp \ historywidget.cpp \
homewidget.cpp \ homewidget.cpp \
imgdownloader.cpp \ imgdownloader.cpp \
@ -32,6 +33,7 @@ SOURCES += \
main.cpp \ main.cpp \
mainwidget.cpp \ mainwidget.cpp \
mainwindow.cpp \ mainwindow.cpp \
modifywidget.cpp \
planwidget.cpp \ planwidget.cpp \
popwidget.cpp \ popwidget.cpp \
preferencewidget.cpp \ preferencewidget.cpp \
@ -59,6 +61,7 @@ HEADERS += \
customizewidget.h \ customizewidget.h \
databaseconnector.h \ databaseconnector.h \
favoritewidget.h \ favoritewidget.h \
feedbackwidget.h \
historywidget.h \ historywidget.h \
homewidget.h \ homewidget.h \
imgdownloader.h \ imgdownloader.h \
@ -68,6 +71,7 @@ HEADERS += \
loginwidget.h \ loginwidget.h \
mainwidget.h \ mainwidget.h \
mainwindow.h \ mainwindow.h \
modifywidget.h \
planwidget.h \ planwidget.h \
popwidget.h \ popwidget.h \
preferencewidget.h \ preferencewidget.h \
@ -93,6 +97,7 @@ FORMS += \
customizewidget.ui \ customizewidget.ui \
databaseconnector.ui \ databaseconnector.ui \
favoritewidget.ui \ favoritewidget.ui \
feedbackwidget.ui \
historywidget.ui \ historywidget.ui \
homewidget.ui \ homewidget.ui \
journywidget.ui \ journywidget.ui \
@ -100,6 +105,7 @@ FORMS += \
loginwidget.ui \ loginwidget.ui \
mainwidget.ui \ mainwidget.ui \
mainwindow.ui \ mainwindow.ui \
modifywidget.ui \
planwidget.ui \ planwidget.ui \
popwidget.ui \ popwidget.ui \
preferencewidget.ui \ preferencewidget.ui \

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.1, 2021-01-13T13:00:47. --> <!-- Written by QtCreator 4.11.1, 2021-07-08T16:10:28. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
<value type="QByteArray">{0c4c8ccc-c524-4850-ba23-7e124d5915df}</value> <value type="QByteArray">{61ba832e-6c30-4ab6-b0b8-ace44f46ca0c}</value>
</data> </data>
<data> <data>
<variable>ProjectExplorer.Project.ActiveTarget</variable> <variable>ProjectExplorer.Project.ActiveTarget</variable>
@ -44,8 +44,8 @@
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value> <value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value> <value type="bool" key="EditorConfiguration.UseGlobal">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> <value type="int" key="EditorConfiguration.Utf8BomBehavior">0</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value> <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
@ -67,11 +67,11 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MSVC2017 64bit</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MSVC2017 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MSVC2017 64bit</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MSVC2017 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win64_msvc2017_64_kit</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win64_msvc2017_64_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value> <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">F:/QtDemo/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -119,7 +119,7 @@
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">F:/QtDemo/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Release</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -167,7 +167,7 @@
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">F:/QtDemo/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Profile</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -287,8 +287,9 @@
</valuelist> </valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value> <value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:F:/QtDemo/ChangShaTour/ChangShaTour.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">ChangShaTour2</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">F:/QtDemo/ChangShaTour/ChangShaTour.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/gitRepositories/TourInChangSha/src/ChangShaTour/ChangShaTour.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/gitRepositories/TourInChangSha/src/ChangShaTour/ChangShaTour.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value> <value type="QString" key="RunConfiguration.Arguments"></value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value> <value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value> <value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
@ -299,14 +300,500 @@
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value> <value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">F:/QtDemo/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Release</value> <value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win32_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MinGW_32_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MinGW_32_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MinGW_32_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
<value type="QString">-e</value>
<value type="QString">cpu-cycles</value>
<value type="QString">--call-graph</value>
<value type="QString">dwarf,4096</value>
<value type="QString">-F</value>
<value type="QString">250</value>
</valuelist>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey"></value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.2</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.14.2 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5142.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/build-ChangShaTour-Desktop_Qt_5_14_2_MinGW_64_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
<value type="QString">-e</value>
<value type="QString">cpu-cycles</value>
<value type="QString">--call-graph</value>
<value type="QString">dwarf,4096</value>
<value type="QString">-F</value>
<value type="QString">250</value>
</valuelist>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey"></value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap> </valuemap>
</data> </data>
<data> <data>
<variable>ProjectExplorer.Project.TargetCount</variable> <variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value> <value type="int">3</value>
</data> </data>
<data> <data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable> <variable>ProjectExplorer.Project.Updater.FileVersion</variable>

@ -10,8 +10,8 @@ struct routeItem{
QDateTime startTime; QDateTime startTime;
QDateTime endTime; QDateTime endTime;
QString traffic; QString traffic;
double distance; int distance;
double timeCost; int timeCost;
QString description; QString description;
struct routeItem * next; struct routeItem * next;
}; };

@ -13,6 +13,7 @@ ConditionWidget::ConditionWidget(QWidget *parent) :
void ConditionWidget::initConditionWidget() void ConditionWidget::initConditionWidget()
{ {
QVBoxLayout * verticalLayout = new QVBoxLayout(); QVBoxLayout * verticalLayout = new QVBoxLayout();
verticalLayout->setMargin(30);
/*QHBoxLayout * dateTimeHorizontalLayout = new QHBoxLayout(); /*QHBoxLayout * dateTimeHorizontalLayout = new QHBoxLayout();
QHBoxLayout * placeHorizontalLayout = new QHBoxLayout();*/ QHBoxLayout * placeHorizontalLayout = new QHBoxLayout();*/
QHBoxLayout * dayHorizontalLayout = new QHBoxLayout(); QHBoxLayout * dayHorizontalLayout = new QHBoxLayout();
@ -37,23 +38,29 @@ void ConditionWidget::initConditionWidget()
placeHorizontalLayout->addWidget(endPlaceLabel); placeHorizontalLayout->addWidget(endPlaceLabel);
placeHorizontalLayout->addWidget(endPlace);*/ placeHorizontalLayout->addWidget(endPlace);*/
QLabel * dayLabel = new QLabel("天数"); QLabel * dayLabel = new QLabel("天数: ");
InitLabel(dayLabel);
dayLine = new QLineEdit(); dayLine = new QLineEdit();
InitLineEdit(dayLine);
dayLine->setPlaceholderText("请输入一个1~10之间的整数"); dayLine->setPlaceholderText("请输入一个1~10之间的整数");
dayLine->setValidator(new QIntValidator(dayLine)); dayLine->setValidator(new QIntValidator(dayLine));
dayHorizontalLayout->addWidget(dayLabel); dayHorizontalLayout->addWidget(dayLabel);
dayHorizontalLayout->addWidget(dayLine); dayHorizontalLayout->addWidget(dayLine);
QLabel * numberLabel = new QLabel("人数"); QLabel * numberLabel = new QLabel("人数: ");
InitLabel(numberLabel);
numberLine = new QLineEdit(); numberLine = new QLineEdit();
InitLineEdit(numberLine);
numberLine->setPlaceholderText("请输入一个1~8之间的整数"); numberLine->setPlaceholderText("请输入一个1~8之间的整数");
numberLine->setValidator(new QIntValidator(numberLine)); numberLine->setValidator(new QIntValidator(numberLine));
numberHorizontalLayout->addWidget(numberLabel); numberHorizontalLayout->addWidget(numberLabel);
numberHorizontalLayout->addWidget(numberLine); numberHorizontalLayout->addWidget(numberLine);
QLabel * budgetLabel = new QLabel("预算"); QLabel * budgetLabel = new QLabel("预算: ");
InitLabel(budgetLabel);
budgetLine = new QLineEdit(); budgetLine = new QLineEdit();
budgetLine->setPlaceholderText("请输入一个50000以内的整数"); InitLineEdit(budgetLine);
budgetLine->setPlaceholderText("请输入一个1~50000之间的整数");
budgetLine->setValidator(new QIntValidator(budgetLine)); budgetLine->setValidator(new QIntValidator(budgetLine));
budgetHorizontalLayout->addWidget(budgetLabel); budgetHorizontalLayout->addWidget(budgetLabel);
budgetHorizontalLayout->addWidget(budgetLine); budgetHorizontalLayout->addWidget(budgetLine);
@ -63,6 +70,7 @@ void ConditionWidget::initConditionWidget()
verticalLayout->addLayout(dayHorizontalLayout); verticalLayout->addLayout(dayHorizontalLayout);
verticalLayout->addLayout(numberHorizontalLayout); verticalLayout->addLayout(numberHorizontalLayout);
verticalLayout->addLayout(budgetHorizontalLayout); verticalLayout->addLayout(budgetHorizontalLayout);
verticalLayout->addStretch();
this->setLayout(verticalLayout); this->setLayout(verticalLayout);
} }
@ -86,3 +94,31 @@ ConditionWidget::~ConditionWidget()
{ {
delete ui; delete ui;
} }
void ConditionWidget::InitLabel(QLabel * label)
{
QFont lbl_font("Microsoft YaHei");
lbl_font.setPointSize(14);
lbl_font.setBold(true);
label->setFont(lbl_font);
label->setStyleSheet("color:#FFFFFF");
//label->setAlignment(Qt::AlignRight);
}
void ConditionWidget::InitLineEdit(QLineEdit * lineEdit)
{
lineEdit->setStyleSheet("QLineEdit {"
" border-radius: 4px; "
" color:rgb(0, 0, 0); "
" background-color: rgba(225, 179, 124, 0.6);"
"} "
" QLineEdit:focus { "
" border-style:outset; "
//" border-width:4px; "
" border-radius: 4px; "
//" border-color: #C1D7F1; "
" color:#ffffff; "
" background-color: #D87B3A;"
"} ");
lineEdit->setFont(QFont("Microsoft YaHei" , 14, QFont::Bold));
}

@ -29,6 +29,9 @@ public:
int getNumber(); int getNumber();
int getBudget(); int getBudget();
void InitLabel(QLabel *);
void InitLineEdit(QLineEdit *);
private: private:
Ui::ConditionWidget *ui; Ui::ConditionWidget *ui;

@ -141,9 +141,9 @@ Route * ConfirmWidget::genRoute()
routeItems = routeItems->next; routeItems = routeItems->next;
routeItems->traffic = trafficCBoxList[i]->currentText(); routeItems->traffic = trafficCBoxList[i]->currentText();
routeItems->description = descriptionLabelList[i]->text(); routeItems->description = descriptionLabelList[i]->text();
routeItems->distance = distanceLabelList[i]->text().split(":")[1].toDouble(); routeItems->distance = distanceLabelList[i]->text().split(":")[1].toInt();
routeItems->timeCost = timeCostLabelList[i]->text().split(":")[1].toDouble(); routeItems->timeCost = timeCostLabelList[i]->text().split(":")[1].toInt();
if((routeItems->next->startTime.toTime_t()) - (routeItems->next->endTime.toTime_t()) < routeItems->timeCost) if((routeItems->next->startTime.toTime_t()) - (routeItems->endTime.toTime_t()) < routeItems->timeCost)
{ {
QMessageBox::warning(this,"警告","当前交通方式无法按时到达目的地!",QMessageBox::Yes); QMessageBox::warning(this,"警告","当前交通方式无法按时到达目的地!",QMessageBox::Yes);
} }

@ -6,6 +6,74 @@ CustomizeWidget::CustomizeWidget(QWidget *parent) :
ui(new Ui::CustomizeWidget) ui(new Ui::CustomizeWidget)
{ {
ui->setupUi(this); ui->setupUi(this);
mainLayout = new QVBoxLayout();
limit = 10;
dayLimit = 3;
title = new QLabel("现在开始定制您的路线\n点击空白按钮就可以向路线中添加场所\n场所的起始/结束时间表示了您想在该场所游玩的时间段");
title->setAlignment(Qt::AlignCenter);
format = new QHBoxLayout();
format->addWidget(new QLabel("序号"),1);
format->addWidget(new QLabel("场所"),12);
format->addWidget(new QLabel("起始时间"),3);
format->addWidget(new QLabel("结束时间"),3);
format->addWidget(new QLabel(""),2);
format->addWidget(new QLabel(""),2);
lineList = (QHBoxLayout **)malloc(sizeof(QHBoxLayout *) * limit);
labelList = (QLabel **)malloc(sizeof(QLabel *) * limit);
placeBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * limit);
startEditList = (QDateTimeEdit **)malloc(sizeof(QDateTimeEdit *) * limit);
endEditList = (QDateTimeEdit **)malloc(sizeof(QDateTimeEdit *) * limit);
addBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * limit);
delBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * limit);
spaceList = (QHBoxLayout **)malloc(sizeof(QHBoxLayout *) * (limit - 1));
spacers = (QLabel **)malloc(sizeof(QLabel *) * (limit - 1));
this->setLayout(mainLayout);
mainLayout->setAlignment(Qt::AlignTop);
//mainLayout->addWidget(title);
//mainLayout->addWidget(new QLabel(""));
mainLayout->addLayout(format);
for (int i = 0; i < limit; i++)
{
lineList[i] = new QHBoxLayout();
labelList[i] = new QLabel(QString::number(i+1));
labelList[i]->setAlignment(Qt::AlignCenter);
placeBtnList[i] = new QPushButton();
startEditList[i] = new QDateTimeEdit();
endEditList[i] = new QDateTimeEdit();
addBtnList[i] = new QPushButton("+");
delBtnList[i] = new QPushButton("-");
mainLayout->addLayout(lineList[i]);
lineList[i]->addWidget(labelList[i],1);
lineList[i]->addWidget(placeBtnList[i],12);
lineList[i]->addWidget(startEditList[i],3);
lineList[i]->addWidget(endEditList[i],3);
lineList[i]->addWidget(addBtnList[i],2);
lineList[i]->addWidget(delBtnList[i],2);
connect(placeBtnList[i], &QPushButton::clicked, this, [=](){setBtn(i);});
connect(addBtnList[i], &QPushButton::clicked, this, [=](){addAt(i);});
connect(delBtnList[i], &QPushButton::clicked, this, [=](){delAt(i);});
}
// for (int i = 0; i < (limit - 1); i++)
// {
// spaceList[i] = new QHBoxLayout();
// spacers[i] = new QLabel();
// spaceList[i]->addWidget(spacers[i]);
// mainLayout->addLayout(spaceList[i]);
// }
} }
CustomizeWidget::~CustomizeWidget() CustomizeWidget::~CustomizeWidget()
@ -29,7 +97,7 @@ void CustomizeWidget::addAt(int index)
{ {
num++; num++;
visibleAt(num - 1, true); visibleAt(num - 1, true);
spacers[limit - num]->setVisible(false); // spacers[limit - num]->setVisible(false);
qDebug() << "Add at " << QString::number(index); qDebug() << "Add at " << QString::number(index);
for (int i = num - 1; i > index + 1; i--) for (int i = num - 1; i > index + 1; i--)
@ -64,7 +132,7 @@ void CustomizeWidget::delAt(int index)
{ {
num--; num--;
visibleAt(num, false); visibleAt(num, false);
spacers[limit - num - 1]->setVisible(true); // spacers[limit - num - 1]->setVisible(true);
qDebug() << "Del at " << QString::number(index); qDebug() << "Del at " << QString::number(index);
for (int i = index; i < num ; i++) for (int i = index; i < num ; i++)
@ -124,8 +192,8 @@ bool CustomizeWidget::genRoute()
QDateTime * startTime = new QDateTime[limit]; QDateTime * startTime = new QDateTime[limit];
QDateTime * endTime = new QDateTime[limit]; QDateTime * endTime = new QDateTime[limit];
QStringList trafficList; QStringList trafficList;
double * distanceList = (double *)malloc(sizeof(double) * limit); int * distanceList = (int *)malloc(sizeof(int) * limit);
double * timeCostList = (double *)malloc(sizeof(double) * limit); int * timeCostList = (int *)malloc(sizeof(int) * limit);
QStringList descriptionList; QStringList descriptionList;
uint eTime = 4294967295; uint eTime = 4294967295;
@ -204,10 +272,9 @@ void CustomizeWidget::initInterface(Route *route)
qDebug("Creating CustomizeWidget..."); qDebug("Creating CustomizeWidget...");
num = 1; num = 1;
limit = 15;
dayLimit = 3;
r = route; r = route;
int count = r->getLength(); int count = r->getLength();
num = (num>count)?num:count;
qDebug() <<"cust num"<<num; qDebug() <<"cust num"<<num;
nameList.clear(); nameList.clear();
@ -228,6 +295,7 @@ void CustomizeWidget::initInterface(Route *route)
p = p->next; p = p->next;
j++; j++;
} }
qDebug() << "j=" << j;
for(j; j < limit; j++) for(j; j < limit; j++)
{ {
@ -238,77 +306,25 @@ void CustomizeWidget::initInterface(Route *route)
endTimeList[j] = QDateTime::currentDateTime(); endTimeList[j] = QDateTime::currentDateTime();
} }
mainLayout = new QVBoxLayout();
title = new QLabel("现在开始定制您的路线\n点击空白按钮就可以向路线中添加场所\n场所的起始/结束时间表示了您想在该场所游玩的时间段");
title->setAlignment(Qt::AlignCenter);
format = new QHBoxLayout();
format->addWidget(new QLabel("序号"),1);
format->addWidget(new QLabel("场所"),12);
format->addWidget(new QLabel("起始时间"),3);
format->addWidget(new QLabel("结束时间"),3);
format->addWidget(new QLabel(""),2);
format->addWidget(new QLabel(""),2);
lineList = (QHBoxLayout **)malloc(sizeof(QHBoxLayout *) * limit);
labelList = (QLabel **)malloc(sizeof(QLabel *) * limit);
placeBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * limit);
startEditList = (QDateTimeEdit **)malloc(sizeof(QDateTimeEdit *) * limit);
endEditList = (QDateTimeEdit **)malloc(sizeof(QDateTimeEdit *) * limit);
addBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * limit);
delBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * limit);
spaceList = (QHBoxLayout **)malloc(sizeof(QHBoxLayout *) * (limit - 1));
spacers = (QLabel **)malloc(sizeof(QLabel *) * (limit - 1));
this->setLayout(mainLayout);
// mainLayout->setAlignment(Qt::AlignTop);
//mainLayout->addWidget(title);
//mainLayout->addWidget(new QLabel(""));
mainLayout->addLayout(format);
for (int i = 0; i < limit; i++) for (int i = 0; i < limit; i++)
{ {
lineList[i] = new QHBoxLayout(); placeBtnList[i]->setText(nameList[i]);
labelList[i] = new QLabel(QString::number(i+1)); startEditList[i]->setDateTime(startTimeList[i]);
labelList[i]->setAlignment(Qt::AlignCenter); endEditList[i]->setDateTime(endTimeList[i]);
placeBtnList[i] = new QPushButton(nameList[i]);
startEditList[i] = new QDateTimeEdit(startTimeList[i]);
endEditList[i] = new QDateTimeEdit(endTimeList[i]);
addBtnList[i] = new QPushButton("+");
delBtnList[i] = new QPushButton("-");
mainLayout->addLayout(lineList[i]);
lineList[i]->addWidget(labelList[i],1);
lineList[i]->addWidget(placeBtnList[i],12);
lineList[i]->addWidget(startEditList[i],3);
lineList[i]->addWidget(endEditList[i],3);
lineList[i]->addWidget(addBtnList[i],2);
lineList[i]->addWidget(delBtnList[i],2);
connect(placeBtnList[i], &QPushButton::clicked, this, [=](){setBtn(i);});
connect(addBtnList[i], &QPushButton::clicked, this, [=](){addAt(i);});
connect(delBtnList[i], &QPushButton::clicked, this, [=](){delAt(i);});
if (i >= num) if (i >= num)
{
visibleAt(i, false); visibleAt(i, false);
} else
visibleAt(i, true);
} }
for (int i = 0; i < (limit - 1); i++) // for (int i = 0; i < (limit - 1); i++)
{ // {
spaceList[i] = new QHBoxLayout(); // if (i >= (limit - num))
spacers[i] = new QLabel(); // spacers[i]->setVisible(false);
spaceList[i]->addWidget(spacers[i]); // else
mainLayout->addLayout(spaceList[i]); // spacers[i]->setVisible(false);
// }
if (i >= (limit - num))
spacers[i]->setVisible(false);
}
qDebug("CustomizeWidget Completed"); qDebug("CustomizeWidget Completed");

@ -183,8 +183,8 @@ void FavoriteWidget::getFavRoutesList()
QStringList urlList; QStringList urlList;
QStringList cateIdList; QStringList cateIdList;
QStringList trafficList; QStringList trafficList;
double * distanceList = new double[16]; int * distanceList = new int[16];
double * timeCostList = new double[16]; int * timeCostList = new int[16];
QStringList descriptionList; QStringList descriptionList;
query.prepare("select * from favPlaces where userId = ? and routeId = ? order by placeNo"); query.prepare("select * from favPlaces where userId = ? and routeId = ? order by placeNo");
@ -203,8 +203,8 @@ void FavoriteWidget::getFavRoutesList()
QString url = query.value("url").toString(); QString url = query.value("url").toString();
QString cateId = query.value("cateId").toString(); QString cateId = query.value("cateId").toString();
QString traffic = query.value("traffic").toString(); QString traffic = query.value("traffic").toString();
double distance = query.value("distance").toInt() / 1000.0; int distance = query.value("distance").toInt() / 1000.0;
double timeCost = query.value("timeCost").toInt() / 60.0; int timeCost = query.value("timeCost").toInt() / 60.0;
QString description = query.value("description").toString(); QString description = query.value("description").toString();
favRoutesList[numOfFavRoutes - i].setRouteId(routeId); favRoutesList[numOfFavRoutes - i].setRouteId(routeId);

@ -0,0 +1,124 @@
#include "feedbackwidget.h"
#include "ui_feedbackwidget.h"
FeedBackWidget::FeedBackWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::FeedBackWidget)
{
ui->setupUi(this);
this->setWindowModality(Qt::ApplicationModal);
this->setFixedSize(QSize(400,500));
this->setWindowTitle("反馈");
QHBoxLayout * scoreHintLayout = new QHBoxLayout();
QLabel * scoreHintLabel = new QLabel("(必填部分)\n请给这条路线打个分吧~");
scoreHintLayout->addWidget(scoreHintLabel);
QHBoxLayout * scoreLayout = new QHBoxLayout();
QLabel * scoreLable = new QLabel("分数");
scoreLineEdit = new QLineEdit();
scoreLineEdit->setPlaceholderText("请输入一个1~5之间的整数");
scoreLineEdit->setValidator(new QIntValidator(scoreLineEdit));
scoreLayout->addWidget(scoreLable);
scoreLayout->addWidget(scoreLineEdit);
QHBoxLayout * shareHintLayout = new QHBoxLayout();
QLabel * shareHintLabel = new QLabel("(选填部分)\n填写下面的信息即可将你的行程分享给其他人哦~");
shareHintLayout->addWidget(shareHintLabel);
QHBoxLayout * dayLayout = new QHBoxLayout();
QLabel * dayLabel = new QLabel("旅游天数");
dayLineEdit = new QLineEdit();
dayLineEdit->setPlaceholderText("请输入一个1~10之间的整数");
dayLineEdit->setValidator(new QIntValidator(dayLineEdit));
dayLayout->addWidget(dayLabel);
dayLayout->addWidget(dayLineEdit);
QHBoxLayout * numberLayout = new QHBoxLayout();
QLabel * numberLabel = new QLabel("旅游人数");
numberLineEdit = new QLineEdit();
numberLineEdit->setPlaceholderText("请输入一个1~8之间的整数");
numberLineEdit->setValidator(new QIntValidator(numberLineEdit));
numberLayout->addWidget(numberLabel);
numberLayout->addWidget(numberLineEdit);
QHBoxLayout * budgetLayout = new QHBoxLayout();
QLabel * budgetLabel = new QLabel("旅游花费");
budgetLineEdit = new QLineEdit();
budgetLineEdit->setPlaceholderText("请输入一个1~50000之间的整数");
budgetLineEdit->setValidator(new QIntValidator(budgetLineEdit));
budgetLayout->addWidget(budgetLabel);
budgetLayout->addWidget(budgetLineEdit);
QHBoxLayout * preferenceLayout = new QHBoxLayout();
QLabel * preferenceLabel = new QLabel("路线重心");
preferenceLineEdit = new QLineEdit();
preferenceLineEdit->setPlaceholderText("请输入一个1~6之间的整数数字的含义如下");
preferenceLineEdit->setValidator(new QIntValidator(preferenceLineEdit));
preferenceLayout->addWidget(preferenceLabel);
preferenceLayout->addWidget(preferenceLineEdit);
QHBoxLayout * preferenceHintLayout = new QHBoxLayout();
QLabel * preferenceHintLabel = new QLabel("1:偏重自然风光 2:偏重人文风俗 3:偏重特色美食\n4:night life 5:偏重二次元 6:偏重恋人出游");
preferenceHintLayout->addWidget(preferenceHintLabel);
QHBoxLayout * functionButtonLayout = new QHBoxLayout();
confirmButton = new QPushButton("确认");
cancelButton = new QPushButton("取消");
functionButtonLayout->addWidget(confirmButton);
functionButtonLayout->addWidget(cancelButton);
verticalLayout = new QVBoxLayout();
verticalLayout->addLayout(scoreHintLayout);
verticalLayout->addLayout(scoreLayout);
verticalLayout->addLayout(shareHintLayout);
verticalLayout->addLayout(dayLayout);
verticalLayout->addLayout(numberLayout);
verticalLayout->addLayout(budgetLayout);
verticalLayout->addLayout(preferenceLayout);
verticalLayout->addLayout(preferenceHintLayout);
verticalLayout->addLayout(functionButtonLayout);
this->setLayout(verticalLayout);
}
FeedBackWidget::~FeedBackWidget()
{
delete ui;
}
int FeedBackWidget::getScore()
{
return (scoreLineEdit->text()).toInt();
}
int FeedBackWidget::getDay()
{
return (dayLineEdit->text()).toInt();
}
int FeedBackWidget::getNumber()
{
return (numberLineEdit->text()).toInt();
}
int FeedBackWidget::getBudget()
{
return (budgetLineEdit->text()).toInt();
}
int FeedBackWidget::getPreference()
{
return (preferenceLineEdit->text()).toInt();
}
QPushButton * FeedBackWidget::getConfirmButton()
{
return confirmButton;
}
QPushButton * FeedBackWidget::getCancleButton()
{
return cancelButton;
}

@ -0,0 +1,48 @@
#ifndef FEEDBACKWIDGET_H
#define FEEDBACKWIDGET_H
#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include <QLineEdit>
#include <QLayout>
#include <QValidator>
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
namespace Ui {
class FeedBackWidget;
}
class FeedBackWidget : public QWidget
{
Q_OBJECT
public:
explicit FeedBackWidget(QWidget *parent = nullptr);
~FeedBackWidget();
int getScore();
int getDay();
int getNumber();
int getBudget();
int getPreference();
QPushButton * getConfirmButton();
QPushButton * getCancleButton();
private:
Ui::FeedBackWidget *ui;
QVBoxLayout * verticalLayout;
QLineEdit * scoreLineEdit;
QLineEdit * dayLineEdit;
QLineEdit * numberLineEdit;
QLineEdit * budgetLineEdit;
QLineEdit * preferenceLineEdit;
QPushButton * confirmButton;
QPushButton * cancelButton;
};
#endif // FEEDBACKWIDGET_H

@ -0,0 +1,21 @@
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>FeedBackWidget</class>
<widget name="FeedBackWidget" class="QWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<pixmapfunction/>
<connections/>
</ui>

@ -11,12 +11,12 @@ JournyWidget::JournyWidget(QWidget *parent) :
numOfJourney = 0; numOfJourney = 0;
routeIdList = new int[5]; routeIdList = new int[5];
tagList = new int[5];
journeyList = new Route[5]; journeyList = new Route[5];
getJourneyList(); getJourneyList();
setBtns(); setBtns();
this->setLayout(verticalLayout); this->setLayout(verticalLayout);
verticalLayout->setAlignment(Qt::AlignTop);
} }
JournyWidget::~JournyWidget() JournyWidget::~JournyWidget()
@ -37,23 +37,23 @@ void JournyWidget::getJourneyList()
numOfJourney += 1; numOfJourney += 1;
} }
for(int i = numOfJourney; i > 0; i--) for(int i = 0; i < numOfJourney; i++)
{ {
QDateTime * startTimeList = new QDateTime[16]; QDateTime * startTimeList = new QDateTime[21];
QDateTime * endTimeList = new QDateTime[16]; QDateTime * endTimeList = new QDateTime[21];
QStringList placeNameList; QStringList placeNameList;
QStringList urlList; QStringList urlList;
QStringList cateIdList; QStringList cateIdList;
QStringList trafficList; QStringList trafficList;
double * distanceList = new double[16]; int * distanceList = new int[21];
double * timeCostList = new double[16]; int * timeCostList = new int[21];
QStringList descriptionList; QStringList descriptionList;
query.prepare("select * from journey where userId = ? and routeId = ? order by placeNo"); query.prepare("select * from journey where userId = ? and routeId = ? order by placeNo");
query.addBindValue(Id); query.addBindValue(Id);
query.addBindValue(routeIdList[i-1]); query.addBindValue(routeIdList[i]);
query.exec(); query.exec();
journeyList[numOfJourney - i].setUserId(Id); journeyList[i].setUserId(Id);
int j = 0; int j = 0;
while(query.next()) while(query.next())
{ {
@ -65,12 +65,13 @@ void JournyWidget::getJourneyList()
QString url = query.value("url").toString(); QString url = query.value("url").toString();
QString cateId = query.value("cateId").toString(); QString cateId = query.value("cateId").toString();
QString traffic = query.value("traffic").toString(); QString traffic = query.value("traffic").toString();
double distance = query.value("distance").toInt() / 1000.0; int distance = query.value("distance").toInt();
double timeCost = query.value("timeCost").toInt() / 60.0; int timeCost = query.value("timeCost").toInt();
QString description = query.value("description").toString(); QString description = query.value("description").toString();
int tag = query.value("tag").toInt();
journeyList[numOfJourney - i].setRouteId(routeId); journeyList[i].setRouteId(routeId);
journeyList[numOfJourney - i].setRouteName(routeName); journeyList[i].setRouteName(routeName);
startTimeList[j] = startTime; startTimeList[j] = startTime;
endTimeList[j] = endTime; endTimeList[j] = endTime;
placeNameList.append(placeName); placeNameList.append(placeName);
@ -80,15 +81,19 @@ void JournyWidget::getJourneyList()
distanceList[j] = distance; distanceList[j] = distance;
timeCostList[j] = timeCost; timeCostList[j] = timeCost;
descriptionList.append(description); descriptionList.append(description);
tagList[i] = tag;
j++; j++;
} }
journeyList[numOfJourney - i].setAllItems(placeNameList, urlList, cateIdList, startTimeList, endTimeList, trafficList, distanceList, timeCostList, descriptionList); journeyList[i].setAllItems(placeNameList, urlList, cateIdList, startTimeList, endTimeList, trafficList, distanceList, timeCostList, descriptionList);
} }
} }
void JournyWidget::setBtns() void JournyWidget::setBtns()
{ {
for(int i = 0; i < numOfJourney; i++) QPushButton ** journeyBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * 5);
QPushButton ** modifyBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * 5);
QPushButton ** feedBackBtnList = (QPushButton **)malloc(sizeof(QPushButton *) * 5);
for(int i = numOfJourney - 1; i >= 0; i--)
{ {
Route journey = journeyList[i]; Route journey = journeyList[i];
QString routeName = journey.getRouteName(); QString routeName = journey.getRouteName();
@ -104,8 +109,125 @@ void JournyWidget::setBtns()
text += "--->"; text += "--->";
text += head->placeName; text += head->placeName;
} }
QPushButton * journeyButton = new QPushButton(text); QHBoxLayout * horizontalLayout = new QHBoxLayout();
journeyButton->setStyleSheet("QPushButton{text-align : left;}");
verticalLayout->addWidget(journeyButton); journeyBtnList[i] = new QPushButton(text);
journeyBtnList[i]->setStyleSheet("QPushButton{text-align : left;}");
journeyBtnList[i]->setFixedSize(1000, 50);
modifyBtnList[i] = new QPushButton("修改");
modifyBtnList[i]->setFixedSize(200, 50);
feedBackBtnList[i] = new QPushButton("反馈");
feedBackBtnList[i]->setFixedSize(200, 50);
connect(feedBackBtnList[i], &QPushButton::clicked, this, [=](){setFeedBackButtons(i);});
horizontalLayout->addWidget(journeyBtnList[i]);
horizontalLayout->addWidget(modifyBtnList[i]);
horizontalLayout->addWidget(feedBackBtnList[i]);
verticalLayout->addLayout(horizontalLayout);
}
}
void JournyWidget::setFeedBackButtons(int index)
{
feedBackWidget = new FeedBackWidget();
feedBackWidget->show();
connect(feedBackWidget->getConfirmButton(), &QPushButton::clicked, this, [=](){confirmButtonProcessor(index);});
connect(feedBackWidget->getCancleButton(), &QPushButton::clicked, this, [=](){feedBackWidget->close();});
}
void JournyWidget::confirmButtonProcessor(int index)
{
int userScore = feedBackWidget->getScore();
if(userScore <= 0 || userScore > 5)
{
QMessageBox::warning(NULL, "警告", "请输入合法的评分!", QMessageBox::Yes);
return;
}
QMessageBox::information(NULL, "提示", "感谢您的反馈!", QMessageBox::Yes);
feedBackWidget->close();
if(!tagList[index])
{
QSqlQuery query(routeDb);
query.prepare("select score, count from recRoutes where routeId = ? and placeNo = 1");
query.addBindValue(routeIdList[index]);
query.exec();
query.next();
double score = query.value("score").toDouble();
int count = query.value("count").toInt();
query.prepare("update recRoutes set score = ?, count = ? where routeId = ? and placeNo = 1");
query.addBindValue((score * count + userScore)/(count + 1));
query.addBindValue(count + 1);
query.addBindValue(routeIdList[index]);
query.exec();
} }
else
{
int day = feedBackWidget->getDay();
int number = feedBackWidget->getNumber();
int budget = feedBackWidget->getBudget();
int preference = feedBackWidget->getPreference();
if(day <= 0 || day > 10)
{
return;
}
if(number <= 0 || number > 8)
{
return;
}
if(budget <= 0 || budget > 50000)
{
return;
}
if(preference <= 0 || preference > 6)
{
return;
}
Route customizedRoute = journeyList[index];
int routeId = customizedRoute.getRouteId();
QString routeName = customizedRoute.getRouteName();
RouteItem * head = customizedRoute.getAllItems();
int i = 0;
QSqlQuery query(routeDb);
head = head->next;
while(head)
{
query.prepare("insert into recRoutes (routeId, routeName, placeNo, startTime, endTime, placeName, url, cateId, traffic, "
"distance, timeCost, description) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
query.addBindValue(routeId);
query.addBindValue(routeName);
query.addBindValue(i+1);
query.addBindValue(head->startTime);
query.addBindValue(head->endTime);
query.addBindValue(head->placeName);
query.addBindValue(head->url);
query.addBindValue(head->cateId);
query.addBindValue(head->traffic);
query.addBindValue(head->distance);
query.addBindValue(head->timeCost);
query.addBindValue(head->description);
query.exec();
head = head->next;
i++;
}
query.prepare("update recRoutes set day = ?, minNumber = ?, maxNumber = ?, minBudget = ?, maxBudget = ?, preference = ?, score = ?, count = ? where routeId = ? and placeNo = 1");
query.addBindValue(day);
query.addBindValue(number - 1);
query.addBindValue(number + 1);
query.addBindValue(budget * 0.7);
query.addBindValue(budget * 1.3);
query.addBindValue(preference);
query.addBindValue(userScore);
query.addBindValue(1);
query.addBindValue(routeId);
query.exec();
}
return;
} }

@ -7,8 +7,10 @@
#include <QDateTime> #include <QDateTime>
#include <QDebug> #include <QDebug>
#include <QLayout> #include <QLayout>
#include <QMessageBox>
#include "cglobal.h" #include "cglobal.h"
#include "route.h" #include "route.h"
#include "feedbackwidget.h"
#if _MSC_VER >= 1600 #if _MSC_VER >= 1600
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
@ -28,14 +30,18 @@ public:
void getJourneyList(); void getJourneyList();
void setBtns(); void setBtns();
void setFeedBackButtons(int index);
void confirmButtonProcessor(int index);
private: private:
Ui::JournyWidget *ui; Ui::JournyWidget *ui;
int numOfJourney; int numOfJourney;
int * routeIdList; int * routeIdList;
int * tagList;
Route * journeyList; Route * journeyList;
QVBoxLayout * verticalLayout; QVBoxLayout * verticalLayout;
FeedBackWidget * feedBackWidget;
}; };
#endif // JOURNYWIDGET_H #endif // JOURNYWIDGET_H

@ -0,0 +1,167 @@
#include "modifywidget.h"
#include "ui_modifywidget.h"
ModifyWidget::ModifyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::ModifyWidget)
{
ui->setupUi(this);
pageIndex = 0;
mainLayout = new QVBoxLayout();
funcLine = new QHBoxLayout();
rtn = new QPushButton("返回");
next = new QPushButton("下一步");
// modifyPlace = new CustomizeWidget();
// modifyTraffic = new ConfirmWidget();
// showInfo = new ShowRouteInfoWidget();
this->setLayout(mainLayout);
mainLayout->addLayout(funcLine);
// mainLayout->addWidget(modifyPlace);
// mainLayout->addWidget(modifyTraffic);
// mainLayout->addWidget(showInfo);
funcLine->addWidget(rtn);
funcLine->addStretch(5);
funcLine->addWidget(next);
}
ModifyWidget::~ModifyWidget()
{
delete ui;
}
void ModifyWidget::invisibleAll()
{
modifyPlace->setVisible(false);
modifyTraffic->setVisible(false);
showInfo->setVisible(false);
}
void ModifyWidget::InitModify(Route *route, int t)
{
r = route;
pageIndex = 0;
tag = t;
modifyPlace->deleteLater();
modifyTraffic->deleteLater();
showInfo->deleteLater();
modifyPlace = new CustomizeWidget();
modifyTraffic = new ConfirmWidget();
showInfo = new ShowRouteInfoWidget();
mainLayout->addWidget(modifyPlace);
mainLayout->addWidget(modifyTraffic);
mainLayout->addWidget(showInfo);
modifyPlace->initInterface(r);
invisibleAll();
modifyPlace->setVisible(true);
disconnect(rtn, 0, 0, 0);
disconnect(next, 0, 0, 0);
connect(rtn, &QPushButton::clicked, this, [=](){this->setVisible(false);});
connect(next, &QPushButton::clicked, this, &ModifyWidget::switchToModifyTraffic);
}
void ModifyWidget::switchToModifyPlace()
{
if (pageIndex == 1)
{
modifyTraffic->deleteLater();
modifyTraffic = new ConfirmWidget();
mainLayout->addWidget(modifyTraffic);
pageIndex = 0;
invisibleAll();
modifyPlace->setVisible(true);
disconnect(rtn, 0, 0, 0);
disconnect(next, 0, 0, 0);
connect(rtn, &QPushButton::clicked, this, [=](){this->deleteLater();});
connect(next, &QPushButton::clicked, this, &ModifyWidget::switchToModifyTraffic);
}
}
void ModifyWidget::switchToModifyTraffic()
{
if (pageIndex == 2)
{
showInfo->deleteLater();
showInfo = new ShowRouteInfoWidget();
mainLayout->addWidget(showInfo);
pageIndex = 1;
invisibleAll();
modifyTraffic->setVisible(true);
disconnect(rtn, 0, 0, 0);
disconnect(next, 0, 0, 0);
connect(rtn, &QPushButton::clicked, this, &ModifyWidget::switchToModifyPlace);
connect(next, &QPushButton::clicked, this, &ModifyWidget::switchToShowInfo);
}
if (modifyPlace->genRoute())
{
pageIndex = 1;
r = modifyPlace->getRoute();
modifyTraffic->setRouteToConfirm(r);
modifyTraffic->initWidget();
invisibleAll();
modifyTraffic->setVisible(true);
disconnect(rtn, 0, 0, 0);
disconnect(next, 0, 0, 0);
connect(rtn, &QPushButton::clicked, this, &ModifyWidget::switchToModifyPlace);
connect(next, &QPushButton::clicked, this, &ModifyWidget::switchToShowInfo);
}
}
void ModifyWidget::switchToShowInfo()
{
if (pageIndex == 1)
{
r = modifyTraffic->genRoute();
if(r == NULL)
{
return ;
}
else
{
pageIndex = 2;
showInfo->setRouteToShow(r);
showInfo->initWidget();
struct routeItem * p= r->getAllItems()->next;
while (p)
{
qDebug() << p->traffic;
p = p->next;
}
disconnect(rtn, 0, 0, 0);
disconnect(next, 0, 0, 0);
connect(rtn, &QPushButton::clicked, this, &ModifyWidget::switchToModifyTraffic);
connect(next, &QPushButton::clicked, this, [=](){this->setVisible(false);});
}
}
}

@ -0,0 +1,55 @@
#ifndef MODIFYWIDGET_H
#define MODIFYWIDGET_H
#include <QWidget>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QPushButton>
#include "route.h"
#include "RouteItem.h"
#include "customizewidget.h"
#include "confirmwidget.h"
#include "showrouteinfowidget.h"
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
namespace Ui {
class ModifyWidget;
}
class ModifyWidget : public QWidget
{
Q_OBJECT
public:
explicit ModifyWidget(QWidget *parent = nullptr);
~ModifyWidget();
void switchToModifyPlace();
void switchToModifyTraffic();
void switchToShowInfo();
void InitModify(Route *route, int t);
private:
Ui::ModifyWidget *ui;
int pageIndex;
Route *r;
int tag;
QVBoxLayout *mainLayout;
QHBoxLayout *funcLine;
QPushButton *rtn;
QPushButton *next;
CustomizeWidget *modifyPlace;
ConfirmWidget *modifyTraffic;
ShowRouteInfoWidget *showInfo;
void invisibleAll();
};
#endif // MODIFYWIDGET_H

@ -0,0 +1,21 @@
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>ModifyWidget</class>
<widget class="QWidget" name="ModifyWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<pixmapfunction/>
<connections/>
</ui>

@ -116,17 +116,17 @@ void PlanWidget::switchToPreferenceWidget()
int day = conditionWidget->getDay(); int day = conditionWidget->getDay();
int number = conditionWidget->getNumber(); int number = conditionWidget->getNumber();
int budget = conditionWidget->getBudget(); int budget = conditionWidget->getBudget();
if(day == 0 || day > 10) if(day <= 0 || day > 10)
{ {
QMessageBox::warning(NULL, "警告", "请输入合法的天数!", QMessageBox::Yes); QMessageBox::warning(NULL, "警告", "请输入合法的天数!", QMessageBox::Yes);
return; return;
} }
if(number == 0 || number > 8) if(number <= 0 || number > 8)
{ {
QMessageBox::warning(NULL, "警告", "请输入合法的人数!", QMessageBox::Yes); QMessageBox::warning(NULL, "警告", "请输入合法的人数!", QMessageBox::Yes);
return; return;
} }
if(budget == 0 || budget > 50000) if(budget <= 0 || budget > 50000)
{ {
QMessageBox::warning(NULL, "警告", "请输入合法的预算!", QMessageBox::Yes); QMessageBox::warning(NULL, "警告", "请输入合法的预算!", QMessageBox::Yes);
return; return;
@ -164,7 +164,7 @@ void PlanWidget::switchToRouteChoiceWidget()
{ {
showRouteInfoWidget->deleteLater(); showRouteInfoWidget->deleteLater();
showRouteInfoWidget = new ShowRouteInfoWidget();//显示详情界面index为6 showRouteInfoWidget = new ShowRouteInfoWidget();//显示详情界面index为6
verLayout->addWidget(confirmWidget); verLayout->addWidget(showRouteInfoWidget);
} }
if (pageIndex == 2) if (pageIndex == 2)
@ -184,7 +184,7 @@ void PlanWidget::switchToRouteChoiceWidget()
functionWidget->setVisible(true); functionWidget->setVisible(true);
returnBtn->setVisible(true); returnBtn->setVisible(true);
favoriteBtn->setVisible(false); favoriteBtn->setVisible(false);
confirmBtn->setVisible(true); confirmBtn->setVisible(false);
choiceWidget->setVisible(false); choiceWidget->setVisible(false);
conditionWidget->setVisible(false); conditionWidget->setVisible(false);
preferenceWidget->setVisible(false); preferenceWidget->setVisible(false);
@ -193,13 +193,24 @@ void PlanWidget::switchToRouteChoiceWidget()
confirmWidget->setVisible(false); confirmWidget->setVisible(false);
showRouteInfoWidget->setVisible(false); showRouteInfoWidget->setVisible(false);
routeChoiceWidget->setBtns(recRouteManager->getRecRoutes(), recRouteManager->getNumOfRecRoutes()); Route ** recRoutes = recRouteManager->getRecRoutes();
int recRouteLen = recRouteManager->getNumOfRecRoutes();
routeChoiceWidget->setBtns(recRoutes, recRouteLen);
QPushButton ** recBtns = routeChoiceWidget->getRecBtns();
int i;
for(i = 0;i<recRouteLen;i++)
{
connect(recBtns[i],&QPushButton::clicked,this,[=](){recRoute = recRoutes[i];switchToShowRouteInfo();});
}
disconnect(returnBtn, 0, 0, 0); disconnect(returnBtn, 0, 0, 0);
disconnect(confirmBtn, 0, 0, 0); disconnect(confirmBtn, 0, 0, 0);
connect(returnBtn, &QPushButton::clicked, this, &PlanWidget::switchToPreferenceWidget); connect(returnBtn, &QPushButton::clicked, this, &PlanWidget::switchToPreferenceWidget);
connect(confirmBtn, &QPushButton::clicked, this, &PlanWidget::switchToShowRouteInfo); //connect(confirmBtn, &QPushButton::clicked, this, &PlanWidget::switchToShowRouteInfo);
} }
void PlanWidget::switchToShowRouteInfo() void PlanWidget::switchToShowRouteInfo()
@ -284,8 +295,11 @@ void PlanWidget::switchToCustomizeWidget()
confirmWidget = new ConfirmWidget(); confirmWidget = new ConfirmWidget();
verLayout->addWidget(confirmWidget); verLayout->addWidget(confirmWidget);
} }
else
{
customizeWidget->initInterface(new Route);
}
pageIndex = 4; pageIndex = 4;
customizeWidget->initInterface(new Route);
functionWidget->setVisible(true); functionWidget->setVisible(true);
returnBtn->setVisible(true); returnBtn->setVisible(true);
@ -397,10 +411,11 @@ void PlanWidget::InitPlanWidget()
verLayout = new QVBoxLayout(); verLayout = new QVBoxLayout();
setLayout(verLayout); setLayout(verLayout);
verLayout->setMargin(30); verLayout->setMargin(25);
functionWidget = new QWidget(); functionWidget = new QWidget();
InitFunctionWidget(); InitFunctionWidget();
functionWidget->setFixedHeight(50);
verLayout->addWidget(functionWidget); verLayout->addWidget(functionWidget);
functionWidget->setVisible(false); functionWidget->setVisible(false);
returnBtn->setVisible(false); returnBtn->setVisible(false);
@ -436,37 +451,31 @@ void PlanWidget::InitPlanWidget()
void PlanWidget::InitChoiceWidget() void PlanWidget::InitChoiceWidget()
{ {
QVBoxLayout * choiceverLayout = new QVBoxLayout(); QHBoxLayout * choiceverLayout = new QHBoxLayout();
choiceWidget->setLayout(choiceverLayout); choiceWidget->setLayout(choiceverLayout);
QWidget * firstSubWidget = new QWidget(); QWidget * firstSubWidget = new QWidget();
choiceverLayout->addWidget(firstSubWidget); choiceverLayout->addWidget(firstSubWidget);
QHBoxLayout * firstHoriLayout = new QHBoxLayout(); QVBoxLayout * firstHoriLayout = new QVBoxLayout();
firstSubWidget->setLayout(firstHoriLayout); firstSubWidget->setLayout(firstHoriLayout);
firstSubWidget->setFixedSize(1440, 300); //firstSubWidget->setFixedSize(1440, 300);
rcmdPlanBtn = new QPushButton(); rcmdPlanBtn = new QPushButton();
InitPlanButton(rcmdPlanBtn, "recommendRoute"); InitPlanButton(rcmdPlanBtn, "recommendRoute");
firstHoriLayout->addWidget(rcmdPlanBtn); firstHoriLayout->addWidget(rcmdPlanBtn);
cstmPlanBtn = new QPushButton(); choiceverLayout->addStretch();
InitPlanButton(cstmPlanBtn, "customizeRoute");
firstHoriLayout->addWidget(cstmPlanBtn);
QWidget * secondSubWidget = new QWidget(); QWidget * secondSubWidget = new QWidget();
choiceverLayout->addWidget(secondSubWidget); choiceverLayout->addWidget(secondSubWidget);
QHBoxLayout * secondHoriLayout = new QHBoxLayout(); QVBoxLayout * secondHoriLayout = new QVBoxLayout();
secondSubWidget->setLayout(secondHoriLayout); secondSubWidget->setLayout(secondHoriLayout);
QLabel * rcmdText = new QLabel("推荐路线"); cstmPlanBtn = new QPushButton();
InitLabel(rcmdText); InitPlanButton(cstmPlanBtn, "customizeRoute");
secondHoriLayout->addWidget(rcmdText); secondHoriLayout->addWidget(cstmPlanBtn);
QLabel * cstmText = new QLabel("定制路线");
InitLabel(cstmText);
secondHoriLayout->addWidget(cstmText);
connect(rcmdPlanBtn, &QPushButton::clicked, this, &PlanWidget::switchToConditionWidget); connect(rcmdPlanBtn, &QPushButton::clicked, this, &PlanWidget::switchToConditionWidget);
connect(cstmPlanBtn, &QPushButton::clicked, this, &PlanWidget::switchToCustomizeWidget); connect(cstmPlanBtn, &QPushButton::clicked, this, &PlanWidget::switchToCustomizeWidget);
@ -619,27 +628,27 @@ void PlanWidget::InitPlanButton(QPushButton * button, QString url)
"border-image: url(./softImages/planWidget/" + url + "Blur.jpg);" "border-image: url(./softImages/planWidget/" + url + "Blur.jpg);"
"border-style:outset;" "border-style:outset;"
"border-radius:10px;" "border-radius:10px;"
"min-width:100px;" //"min-width:100px;"
"min-height:20px;" //"min-height:20px;"
"padding:4px;" //"padding:4px;"
"} " "} "
"QPushButton:hover {" "QPushButton:hover {"
"border-image: url(./softImages/planWidget/" + url + ".jpg);" "border-image: url(./softImages/planWidget/" + url + ".jpg);"
"border-style:outset;" "border-style:outset;"
"border-radius:10px;" "border-radius:10px;"
"min-width:100px;" //"min-width:100px;"
"min-height:20px;" //"min-height:20px;"
"padding:4px;" //"padding:4px;"
"} " "} "
"QPushButton:pressed {" "QPushButton:pressed {"
"border-image: url(./softImages/planWidget/" + url + ".jpg);" "border-image: url(./softImages/planWidget/" + url + ".jpg);"
"border-style:outset;" "border-style:outset;"
"border-radius:10px;" "border-radius:10px;"
"min-width:100px;" //"min-width:100px;"
"min-height:20px;" //"min-height:20px;"
"padding:4px;" //"padding:4px;"
"}"); "}");
button->setFixedSize(500, 300); button->setFixedSize(600, 300);
} }

@ -47,7 +47,11 @@ void RecRouteManager::setPreference(int preference)
void RecRouteManager::genRecRoutes() void RecRouteManager::genRecRoutes()
{ {
recRouteList = new Route[5]; recRouteList = (Route **)malloc(sizeof (Route *) * 5);
for(int i=0;i<5;i++)
{
recRouteList[i] = new Route();
}
routeIdList = new int[5]; routeIdList = new int[5];
numOfRecRoutes = 0; numOfRecRoutes = 0;
QSqlQuery query(routeDb); QSqlQuery query(routeDb);
@ -65,6 +69,7 @@ void RecRouteManager::genRecRoutes()
routeIdList[numOfRecRoutes] = query.value("routeId").toInt(); routeIdList[numOfRecRoutes] = query.value("routeId").toInt();
numOfRecRoutes += 1; numOfRecRoutes += 1;
} }
qDebug()<<numOfRecRoutes;
for(int i = 0; i < numOfRecRoutes; i++) for(int i = 0; i < numOfRecRoutes; i++)
{ {
@ -74,10 +79,11 @@ void RecRouteManager::genRecRoutes()
QStringList urlList; QStringList urlList;
QStringList cateIdList; QStringList cateIdList;
QStringList trafficList; QStringList trafficList;
double * distanceList = new double[16]; int * distanceList = new int[16];
double * timeCostList = new double[16]; int * timeCostList = new int[16];
QStringList descriptionList; QStringList descriptionList;
query.prepare("select * from recRoutes where routeId = ? order by placeNo"); query.prepare("select * from recRoutes where routeId = ? order by placeNo");
query.addBindValue(routeIdList[i]); query.addBindValue(routeIdList[i]);
query.exec(); query.exec();
@ -92,12 +98,13 @@ void RecRouteManager::genRecRoutes()
QString url = query.value("url").toString(); QString url = query.value("url").toString();
QString cateId = query.value("cateId").toString(); QString cateId = query.value("cateId").toString();
QString traffic = query.value("traffic").toString(); QString traffic = query.value("traffic").toString();
double distance = query.value("distance").toInt() / 1000.0; int distance = query.value("distance").toInt();
double timeCost = query.value("timeCost").toInt() / 60.0; int timeCost = query.value("timeCost").toInt();
QString description = query.value("description").toString(); QString description = query.value("description").toString();
recRouteList[i].setRouteId(routeId);
recRouteList[i].setRouteName(routeName); recRouteList[i]->setRouteId(routeId);
recRouteList[i]->setRouteName(routeName);
startTimeList[j] = startTime; startTimeList[j] = startTime;
endTimeList[j] = endTime; endTimeList[j] = endTime;
placeNameList.append(placeName); placeNameList.append(placeName);
@ -107,9 +114,10 @@ void RecRouteManager::genRecRoutes()
distanceList[j] = distance; distanceList[j] = distance;
timeCostList[j] = timeCost; timeCostList[j] = timeCost;
descriptionList.append(description); descriptionList.append(description);
j++; j++;
} }
recRouteList[i].setAllItems(placeNameList, urlList, cateIdList, startTimeList, endTimeList, trafficList, distanceList, timeCostList, descriptionList); recRouteList[i]->setAllItems(placeNameList, urlList, cateIdList, startTimeList, endTimeList, trafficList, distanceList, timeCostList, descriptionList);
} }
qDebug() << "success"; qDebug() << "success";
qDebug() << day; qDebug() << day;
@ -117,10 +125,10 @@ void RecRouteManager::genRecRoutes()
qDebug() << budget; qDebug() << budget;
qDebug() << preference; qDebug() << preference;
qDebug() << numOfRecRoutes; qDebug() << numOfRecRoutes;
qDebug() << recRouteList[0].getRouteName(); qDebug() << recRouteList[0]->getRouteName();
} }
Route * RecRouteManager::getRecRoutes() Route ** RecRouteManager::getRecRoutes()
{ {
return recRouteList; return recRouteList;
} }

@ -22,11 +22,11 @@ public:
void setPreference(int preference); void setPreference(int preference);
void genRecRoutes(); void genRecRoutes();
Route * getRecRoutes(); Route ** getRecRoutes();
int getNumOfRecRoutes(); int getNumOfRecRoutes();
private: private:
Route * recRouteList; Route ** recRouteList;
int * routeIdList; int * routeIdList;
int numOfRecRoutes; int numOfRecRoutes;

@ -42,7 +42,7 @@ void Route::setRouteId(int id)
{ {
this->routeId=id; this->routeId=id;
} }
void Route::setAllItems(QStringList titleList,QStringList urlList,QStringList cateIdList,QDateTime * startTimeList,QDateTime * endTimeList,QStringList trafficList,double * distanceList,double * timeCostList,QStringList descriptionList) void Route::setAllItems(QStringList titleList,QStringList urlList,QStringList cateIdList,QDateTime * startTimeList,QDateTime * endTimeList,QStringList trafficList,int * distanceList,int * timeCostList,QStringList descriptionList)
{ {
RouteItem * head= routeItems; RouteItem * head= routeItems;
RouteItem * p; RouteItem * p;

@ -9,7 +9,7 @@ public:
Route(); Route();
struct routeItem * getAllItems(); struct routeItem * getAllItems();
//距离和时间都用int表示单位m/km时间s/min统一一下 //距离和时间都用int表示单位m/km时间s/min统一一下
void setAllItems(QStringList titleList,QStringList urlList,QStringList cateIdList,QDateTime * startTimeList,QDateTime * endTimeList,QStringList trafficList,double *distanceList,double *timeCostList,QStringList descriptionList); void setAllItems(QStringList titleList,QStringList urlList,QStringList cateIdList,QDateTime * startTimeList,QDateTime * endTimeList,QStringList trafficList,int *distanceList,int *timeCostList,QStringList descriptionList);
int getRouteId(); int getRouteId();
int getUserId(); int getUserId();
QString getRouteName(); QString getRouteName();

@ -8,15 +8,16 @@ RouteChoiceWidget::RouteChoiceWidget(QWidget *parent) :
ui->setupUi(this); ui->setupUi(this);
} }
void RouteChoiceWidget::setBtns(Route * routeList, int len) void RouteChoiceWidget::setBtns(Route ** routeList, int len)
{ {
verticalLayout = new QVBoxLayout(); verticalLayout = new QVBoxLayout();
this->setLayout(verticalLayout); this->setLayout(verticalLayout);
recRouteButtons = (QPushButton **)malloc(sizeof (QPushButton *) * len);
for(int i = 0; i < len; i++) for(int i = 0; i < len; i++)
{ {
Route recRoute = routeList[i]; Route * recRoute = routeList[i];
QString routeName = recRoute.getRouteName(); QString routeName = recRoute->getRouteName();
RouteItem * head = recRoute.getAllItems(); RouteItem * head = recRoute->getAllItems();
head = head->next; head = head->next;
QString text; QString text;
text += routeName; text += routeName;
@ -28,12 +29,17 @@ void RouteChoiceWidget::setBtns(Route * routeList, int len)
text += "--->"; text += "--->";
text += head->placeName; text += head->placeName;
} }
QPushButton * recRouteButton = new QPushButton(text); recRouteButtons[i] = new QPushButton(text);
recRouteButton->setStyleSheet("QPushButton{text-align : left;}"); recRouteButtons[i]->setStyleSheet("QPushButton{text-align : left;}");
verticalLayout->addWidget(recRouteButton); verticalLayout->addWidget(recRouteButtons[i]);
} }
} }
QPushButton ** RouteChoiceWidget::getRecBtns()
{
return this->recRouteButtons;
}
RouteChoiceWidget::~RouteChoiceWidget() RouteChoiceWidget::~RouteChoiceWidget()
{ {
delete ui; delete ui;

@ -22,12 +22,14 @@ public:
explicit RouteChoiceWidget(QWidget *parent = nullptr); explicit RouteChoiceWidget(QWidget *parent = nullptr);
~RouteChoiceWidget(); ~RouteChoiceWidget();
void setBtns(Route * routeList, int len); void setBtns(Route ** routeList, int len);
QPushButton ** getRecBtns();
private: private:
Ui::RouteChoiceWidget *ui; Ui::RouteChoiceWidget *ui;
QVBoxLayout * verticalLayout; QVBoxLayout * verticalLayout;
QPushButton ** recRouteButtons;
}; };
#endif // ROUTECHOICEWIDGET_H #endif // ROUTECHOICEWIDGET_H

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Loading…
Cancel
Save