Compare commits

..

No commits in common. "v0.2-beta" and "master" have entirely different histories.

189 changed files with 70440 additions and 1201 deletions

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 Github@LapplandSP
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,4 +1,9 @@
QT += core gui
QT += serialport
QT += core5compat
CONFIG += resources_big
# QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
@ -9,20 +14,38 @@ CONFIG += c++11
SOURCES += \
about.cpp \
abstract/comboboxlistwidget.cpp \
adbprocess.cpp \
animationwidget.cpp \
basepage.cpp \
devitem.cpp \
indexlistitem.cpp \
main.cpp \
mainwindow.cpp \
monitor.cpp \
noticewidget.cpp \
pagelistitem.cpp \
pagemaker.cpp \
sonPages/activator/sp_activator.cpp \
sonPages/advanced/sp_accounts.cpp \
sonPages/advanced/sp_captive_portal.cpp \
sonPages/advanced/sp_customize_cmd.cpp \
sonPages/advanced/sp_scales.cpp \
sonPages/advanced/sp_status_bar.cpp \
sonPages/advanced/sp_vibrate.cpp \
sonPages/apps/sp_features.cpp \
sonPages/apps/sp_installer.cpp \
sonPages/apps/sp_libraries.cpp \
sonPages/apps/sp_packages.cpp \
sonPages/apps/sp_permissiongroups.cpp \
sonPages/apps/sp_permissions.cpp \
sonPages/apps/sp_users.cpp \
sonPages/apps/tp_packageprofile.cpp \
sonPages/devControl/btnemulator.cpp \
sonPages/devControl/sp_devcontrol_power.cpp \
sonPages/devInfo/sp_dpichanger.cpp \
sonPages/devInfo/sp_wmsize.cpp \
sonPages/links.cpp \
sonPages/pay.cpp \
sonPages/recovery/sp_recovery.cpp \
sonPages/sonpagebase.cpp \
@ -31,23 +54,43 @@ SOURCES += \
textexplainer.cpp \
threads/adbthread.cpp \
threads/thread_createpage.cpp \
threads/thread_monitor.cpp \
usb_listener.cpp \
welcomepage.cpp
HEADERS += \
about.h \
abstract/comboboxlistwidget.h \
adbprocess.h \
animationwidget.h \
basepage.h \
devitem.h \
indexlistitem.h \
mainwindow.h \
monitor.h \
noticewidget.h \
pagelistitem.h \
pagemaker.h \
sonPages/activator/sp_activator.h \
sonPages/advanced/sp_accounts.h \
sonPages/advanced/sp_captive_portal.h \
sonPages/advanced/sp_customize_cmd.h \
sonPages/advanced/sp_scales.h \
sonPages/advanced/sp_status_bar.h \
sonPages/advanced/sp_vibrate.h \
sonPages/apps/sp_features.h \
sonPages/apps/sp_installer.h \
sonPages/apps/sp_libraries.h \
sonPages/apps/sp_packages.h \
sonPages/apps/sp_permissiongroups.h \
sonPages/apps/sp_permissions.h \
sonPages/apps/sp_users.h \
sonPages/apps/tp_packageprofile.h \
sonPages/devControl/btnemulator.h \
sonPages/devControl/sp_devcontrol_power.h \
sonPages/devInfo/sp_dpichanger.h \
sonPages/devInfo/sp_wmsize.h \
sonPages/links.h \
sonPages/pay.h \
sonPages/recovery/sp_recovery.h \
sonPages/sonpagebase.h \
@ -56,20 +99,39 @@ HEADERS += \
textexplainer.h \
threads/adbthread.h \
threads/thread_createpage.h \
threads/thread_monitor.h \
usb_listener.h \
welcomepage.h
FORMS += \
about.ui \
basepage.ui \
devitem.ui \
indexlistitem.ui \
mainwindow.ui \
monitor.ui \
noticewidget.ui \
pagelistitem.ui \
sonPages/activator/sp_activator.ui \
sonPages/advanced/sp_accounts.ui \
sonPages/advanced/sp_captive_portal.ui \
sonPages/advanced/sp_customize_cmd.ui \
sonPages/advanced/sp_scales.ui \
sonPages/advanced/sp_status_bar.ui \
sonPages/advanced/sp_vibrate.ui \
sonPages/apps/sp_features.ui \
sonPages/apps/sp_installer.ui \
sonPages/apps/sp_libraries.ui \
sonPages/apps/sp_packages.ui \
sonPages/apps/sp_permissiongroups.ui \
sonPages/apps/sp_permissions.ui \
sonPages/apps/sp_users.ui \
sonPages/apps/tp_packageprofile.ui \
sonPages/devControl/btnemulator.ui \
sonPages/devControl/sp_devcontrol_power.ui \
sonPages/devInfo/sp_dpichanger.ui \
sonPages/devInfo/sp_wmsize.ui \
sonPages/links.ui \
sonPages/pay.ui \
sonPages/recovery/sp_recovery.ui \
sonPages/sonpagebase.ui \
@ -87,6 +149,9 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += \
ico.qrc
cfgs.qrc \
fonts/fonts.qrc \
ico.qrc \
styles.qrc
RC_FILE += logo.rc

263
QtAdb/QtAdb.pro.user Normal file
View File

@ -0,0 +1,263 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 9.0.1, 2023-06-17T22:40:53. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{e7d51345-9e8a-4ccc-a890-f62f4250ae23}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">4</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.2.4 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.4 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.624.win64_mingw_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\DXLin\Documents\Qt\QTADB\QtAdb\QtAdb\..\build-QtAdb-Desktop_Qt_6_2_4_MinGW_64_bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/DXLin/Documents/Qt/QTADB/QtAdb/build-QtAdb-Desktop_Qt_6_2_4_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">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.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\DXLin\Documents\Qt\QTADB\QtAdb\QtAdb\..\build-QtAdb-Desktop_Qt_6_2_4_MinGW_64_bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/DXLin/Documents/Qt/QTADB/QtAdb/build-QtAdb-Desktop_Qt_6_2_4_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">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.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:\Users\DXLin\Documents\Qt\QTADB\QtAdb\QtAdb\..\build-QtAdb-Desktop_Qt_6_2_4_MinGW_64_bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">C:/Users/DXLin/Documents/Qt/QTADB/QtAdb/build-QtAdb-Desktop_Qt_6_2_4_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.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">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.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="SeparateDebugInfo">0</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/DXLin/Documents/Qt/QTADB/QtAdb/QtAdb/QtAdb.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/DXLin/Documents/Qt/QTADB/QtAdb/QtAdb/QtAdb.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/DXLin/Documents/Qt/QTADB/QtAdb/build-QtAdb-Desktop_Qt_6_2_4_MinGW_64_bit-Release</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,53 @@
[defaults]
base_features = sparse_super,large_file,filetype,dir_index,ext_attr
default_mntopts = acl,user_xattr
enable_periodic_fsck = 0
blocksize = 4096
inode_size = 256
inode_ratio = 16384
reserved_ratio = 1.0
[fs_types]
ext3 = {
features = has_journal
}
ext4 = {
features = has_journal,extent,huge_file,dir_nlink,extra_isize,uninit_bg
inode_size = 256
}
ext4dev = {
features = has_journal,extent,huge_file,flex_bg,inline_data,64bit,dir_nlink,extra_isize
inode_size = 256
options = test_fs=1
}
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
floppy = {
blocksize = 1024
inode_size = 128
inode_ratio = 8192
}
big = {
inode_ratio = 32768
}
huge = {
inode_ratio = 65536
}
news = {
inode_ratio = 4096
}
largefile = {
inode_ratio = 1048576
blocksize = -1
}
largefile4 = {
inode_ratio = 4194304
blocksize = -1
}
hurd = {
blocksize = 4096
inode_size = 128
}

Binary file not shown.

View File

@ -0,0 +1,4 @@
@echo off
set dir=%cd%
REM set dir="d:\"
start cmd /K "cd/d %dir%"

View File

@ -0,0 +1,2 @@
Pkg.UserSrc=false
Pkg.Revision=33.0.2

Binary file not shown.

View File

@ -5,9 +5,8 @@ about::about(QWidget *parent) :
basePage(parent),
ui(new Ui::about)
{
ui->setupUi(this);
self_castrate();
ui->setupUi(this);
QGraphicsDropShadowEffect *shadowEffect_btn_website = new QGraphicsDropShadowEffect(this);
shadowEffect_btn_website->setOffset(0,0);
@ -31,12 +30,13 @@ about::about(QWidget *parent) :
shadowEffect_btn_money->setOffset(0,0);
shadowEffect_btn_money->setColor(Qt::gray);
shadowEffect_btn_money->setBlurRadius(5);
ui->btn_money->setGraphicsEffect(shadowEffect_btn_money);
//ui->btn_money->setGraphicsEffect(shadowEffect_btn_money);
QGraphicsDropShadowEffect *shadowEffect_btn_money2 = new QGraphicsDropShadowEffect(this);
shadowEffect_btn_money2->setOffset(0,0);
shadowEffect_btn_money2->setColor(Qt::gray);
shadowEffect_btn_money2->setColor(QColorConstants::Svg::orange);
shadowEffect_btn_money2->setBlurRadius(5);
ui->btn_money_2->setGraphicsEffect(shadowEffect_btn_money2);
ui->btn_money_2->setGraphicsEffect(shadowEffect_btn_money2);/*
QGraphicsDropShadowEffect *shadowEffect_btn_money3 = new QGraphicsDropShadowEffect(this);
shadowEffect_btn_money3->setOffset(0,0);
shadowEffect_btn_money3->setColor(Qt::gray);
@ -46,18 +46,44 @@ about::about(QWidget *parent) :
shadowEffect_btn_money4->setOffset(0,0);
shadowEffect_btn_money4->setColor(Qt::gray);
shadowEffect_btn_money4->setBlurRadius(5);
ui->btn_money_4->setGraphicsEffect(shadowEffect_btn_money4);
ui->btn_money_4->setGraphicsEffect(shadowEffect_btn_money4);*/
QGraphicsDropShadowEffect *shadowEffect_btn_qq = new QGraphicsDropShadowEffect(this);
shadowEffect_btn_qq->setOffset(0,0);
shadowEffect_btn_qq->setColor(Qt::gray);
shadowEffect_btn_qq->setBlurRadius(5);
ui->btn_qq_dis->setGraphicsEffect(shadowEffect_btn_qq);
QGraphicsDropShadowEffect *shadowEffect_btn_qGroup = new QGraphicsDropShadowEffect(this);
shadowEffect_btn_qGroup->setOffset(0,0);
shadowEffect_btn_qGroup->setColor(Qt::gray);
shadowEffect_btn_qGroup->setBlurRadius(5);
ui->btn_qgroup->setGraphicsEffect(shadowEffect_btn_qGroup);
QGraphicsDropShadowEffect *shadowEffect_btn_version = new QGraphicsDropShadowEffect(this);
shadowEffect_btn_version->setOffset(0,0);
shadowEffect_btn_version->setColor(Qt::gray);
shadowEffect_btn_version->setBlurRadius(5);
ui->btn_version->setGraphicsEffect(shadowEffect_btn_version);
QGraphicsDropShadowEffect *shadowEffect_btn_links = new QGraphicsDropShadowEffect(this);
shadowEffect_btn_links->setOffset(0,0);
shadowEffect_btn_links->setColor(QColorConstants::Svg::skyblue);
shadowEffect_btn_links->setBlurRadius(5);
ui->btn_links->setGraphicsEffect(shadowEffect_btn_links);
QFont font1;
font1.setFamilies({QString::fromUtf8("LXGW WenKai Lite")});
font1.setPointSize(12);
//ui->setFont(font1);
/*
ui->btn_money->hide();
ui->btn_money_3->hide();
ui->btn_money_4->hide();
ui->btn_money_4->hide();*/
//this->setStyleSheet("QToolTip{border:1px solid #BDBDBD; background-color: #ffffff; color:rgba(117, 117, 117, 0.9);font-family: MiSans Medium; font-size:12px;border-radius:4px;}");
//this->setStyleSheet("QToolTip{border:1px solid #BDBDBD; background-color: #ffffff; color:rgba(117, 117, 117, 0.9);font-family: MiSans Medium; font-size:12px;border-radius:4px;}");
}
about::~about()
@ -67,7 +93,7 @@ about::~about()
void about::on_btn_website_clicked()
{
QDesktopServices::openUrl(QUrl("https://lapplandsp.github.io/QtAdb-pages/", QUrl::TolerantMode));
QDesktopServices::openUrl(QUrl("https://lapplandsp.github.io/QtAdb-Pages/", QUrl::TolerantMode));
}
void about::on_btn_coolapk_clicked()
@ -75,13 +101,11 @@ void about::on_btn_coolapk_clicked()
QDesktopServices::openUrl(QUrl("http://www.coolapk.com/u/692559", QUrl::TolerantMode));
}
void about::on_btn_github_clicked()
{
QDesktopServices::openUrl(QUrl("https://github.com/LapplandSP", QUrl::TolerantMode));
}
void about::on_btn_money_2_clicked()
{
pay * payPage = new pay();
@ -92,3 +116,27 @@ void about::on_btn_money_2_clicked()
payPage->show();
}
void about::on_btn_links_clicked()
{
links *linksPage = new links();
linksPage->show();
}
void about::on_btn_version_clicked()
{
QDesktopServices::openUrl(QUrl("https://lapplandsp.github.io/QtAdb-Pages/qa/", QUrl::TolerantMode));
}
void about::on_btn_qq_dis_clicked()
{
QDesktopServices::openUrl(QUrl("https://pd.qq.com/s/k96ej1", QUrl::TolerantMode));
}
void about::on_btn_qgroup_clicked()
{
QDesktopServices::openUrl(QUrl("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=5s7RHXEhHg54Zng2B9NgOJ1f1LT1j-JU&authKey=Sxp0Mgvc0F8Esh6YuANcWe4n1abjXvZ%2BPPMfw8pIf85FEdRuRxGgbwpxcBGyaGR4&noverify=0&group_code=860105291", QUrl::TolerantMode));
}

View File

@ -7,6 +7,7 @@
#include "basepage.h"
#include "sonPages/pay.h"
#include "animationwidget.h"
#include "sonPages/links.h"
namespace Ui {
class about;
@ -29,6 +30,14 @@ private slots:
void on_btn_money_2_clicked();
void on_btn_links_clicked();
void on_btn_version_clicked();
void on_btn_qq_dis_clicked();
void on_btn_qgroup_clicked();
private:
Ui::about *ui;
};

View File

@ -6,14 +6,14 @@
<rect>
<x>0</x>
<y>0</y>
<width>644</width>
<height>496</height>
<width>833</width>
<height>616</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
@ -35,9 +35,7 @@
</size>
</property>
<property name="font">
<font>
<family>MiSans Medium</family>
</font>
<font/>
</property>
<property name="styleSheet">
<string notr="true">border-radius: 4px;
@ -47,18 +45,90 @@ background-color: rgba(255, 255, 255, 0);</string>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>11</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>14</number>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="topMargin">
<number>11</number>
<number>5</number>
</property>
<item>
<property name="spacing">
<number>10</number>
</property>
<item row="8" column="0">
<layout class="QHBoxLayout" name="horizontalLayout"/>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QPushButton" name="btn_qq_dis">
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string/>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/QQ_tencent-qq.svg</normaloff>:/ico/image/ico/QQ_tencent-qq.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_7">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>QQ频道</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QPushButton" name="btn_version">
@ -77,13 +147,17 @@ background-color: rgba(255, 255, 255, 0);</string>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string>版本号</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}
QToolTip{border:1px solid #BDBDBD; background-color: #ffffff; color:rgba(117, 117, 117, 0.9);font-family: MiSans Medium; font-size:12px;border-radius:4px;}</string>
</property>
<property name="text">
<string/>
@ -110,20 +184,21 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>测试版本beta-v0.2</string>
<string>beta-v1.7</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item row="6" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QPushButton" name="btn_website">
<widget class="QPushButton" name="btn_money_2">
<property name="minimumSize">
<size>
<width>50</width>
@ -139,25 +214,28 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string>网址</string>
<string/>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.6);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
QPushButton:pressed{background-color:rgba(255,255,255,0.5);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/btnEmulator/firefox-line.svg</normaloff>:/ico/image/ico/btnEmulator/firefox-line.svg</iconset>
<normaloff>:/ico/image/ico/about/cola.svg</normaloff>:/ico/image/ico/about/cola.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<widget class="QLabel" name="label_5">
<property name="minimumSize">
<size>
<width>0</width>
@ -172,17 +250,18 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>网站https://lapplandsp.github.io/QtAdb-pages/</string>
<string>捐赠: 请我喝快乐水</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QPushButton" name="btn_coolapk">
@ -201,8 +280,11 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string>酷安</string>
<string/>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
@ -234,17 +316,97 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>酷安@霍星</string>
<string>酷安</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="btn_website">
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string/>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/btnEmulator/firefox-line.svg</normaloff>:/ico/image/ico/btnEmulator/firefox-line.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>官方网站</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="7" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QPushButton" name="btn_github">
@ -263,8 +425,11 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string>Github</string>
<string/>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
@ -296,22 +461,26 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Github LapplandSP</string>
<string>Github</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item row="6" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QPushButton" name="btn_money">
<property name="enabled">
<bool>false</bool>
<widget class="QPushButton" name="btn_links">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
@ -325,28 +494,48 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
<height>50</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="toolTip">
<string>请我吃东西</string>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.6);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
QPushButton:pressed{background-color:rgba(255,255,255,0.5);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/about/heart-line.svg</normaloff>:/ico/image/ico/about/heart-line.svg</iconset>
<normaloff>:/ico/image/ico/link.svg</normaloff>:/ico/image/ico/link.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_money_2">
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>相关链接</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<widget class="QPushButton" name="btn_qgroup">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>50</horstretch>
<verstretch>50</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>50</width>
@ -359,12 +548,6 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
<height>50</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="toolTip">
<string>请我吃可乐3元</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
@ -375,80 +558,12 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/about/cola.svg</normaloff>:/ico/image/ico/about/cola.svg</iconset>
<normaloff>:/ico/image/ico/QQ_tencent-qq.svg</normaloff>:/ico/image/ico/QQ_tencent-qq.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_money_3">
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="toolTip">
<string>请我吃鸡腿5元</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/about/chiken.svg</normaloff>:/ico/image/ico/about/chiken.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_money_4">
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="toolTip">
<string>请我吃面条10元</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/about/noodles.svg</normaloff>:/ico/image/ico/about/noodles.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_5">
<widget class="QLabel" name="label_8">
<property name="minimumSize">
<size>
<width>0</width>
@ -463,32 +578,17 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>捐赠:请我喝快乐水</string>
<string>QQ群组860105291</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout"/>
</item>
</layout>
</item>
</layout>

View File

@ -0,0 +1,112 @@
#include "comboboxlistwidget.h"
comboboxListWidget::comboboxListWidget(QWidget *parent)
: QListWidget{parent}
{
explainer = new textExplainer();
nameList[0] = name;
nameList[1] = addr;
//this->setModelColumn(count);
this->setResizeMode(QListView::Adjust);
this->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
QFile file_qss("://qss/scrollbar.qss");
file_qss.open(QFile::ReadOnly);
this->verticalScrollBar()->setStyleSheet(file_qss.readAll());
this->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
/*
file = new QFile(":/cfgs/cfg/name.cfg");
file->open(QFile::ReadWrite);*/
}
comboboxListWidget::~comboboxListWidget()
{
}
void comboboxListWidget::setUpList(QList<device> devList, QList<int> off)
{
/*
QFile file(":/cfgs/cfg/name.cfg");
file.open(QFile::ReadOnly);
QString names = file.readAll();
names = explainer->get_words_before(explainer->get_words_after(names,"###NAME###"),"###ENDNAME###");
QStringList tmpList = names.split("\n");*/
//qDebug() << tmpList;
/*
for(int i = 0 ;i < tmpList.size() ; i++)
{
nameList[0].append(explainer->get_words_after(tmpList[i],":"));
nameList[1].append(explainer->get_words_before(tmpList[i],":"));
}*/
for (int i = 0 ; i < devList.size() ; i++ )
{
devItem *wgt = new devItem(this);
wgt->setAddr(devList[i].addr);
wgt->setDevice(devList[i].device_product);
wgt->setDevModel(devList[i].model);
wgt->setStat(devList[i].state);
qDebug() << "nameList[1] (addr)" << nameList[1];
qDebug() << "devList[i].addr" << devList[i].addr;
if(nameList[1].contains(devList[i].addr))
{
wgt->setName(nameList[0][nameList[1].indexOf(devList[i].addr)]);
//qDebug() << nameList[0][nameList[1].indexOf(devList[i].addr)];
}
else
{
wgt->setName(explainer->get_words_after(devList[i].model,":"));
}
QListWidgetItem *item = new QListWidgetItem(this);
this->addItem(item);
this->setItemWidget(item, wgt);
connect(wgt,SIGNAL(addName(QString,QString)),this,SLOT(addName(QString,QString)));
}
/*
file.close();*/
qDebug() << "closed";
//file.deleteLater();
}
void comboboxListWidget::addName(QString addr,QString name)
{/*
addr = explainer->get_words_after(addr, ": ");
qDebug() << "addr:" << addr << "name:" << name;
if(nameList[1].contains(addr))
{
nameList[0][nameList[1].indexOf(addr)] = name;
}
else
{
nameList[0].append(name);
nameList[1].append(addr);
}
QString text = "###NAME###\n";
for(int i = 0 ;i < nameList->size() ; i++)
{
text.append(nameList[1][i]).append(":").append(nameList[0][i]).append("\n");
}
text.append("###ENDNAME###");
//file.open(QFile::ReadWrite);
//file.close();
QFile file(":/cfgs/cfg/name.cfg");
file.setPermissions(QFile::WriteUser);
file.open(QIODevice::Truncate | QIODevice::WriteOnly);
qDebug() << file.isWritable();
file.write(text.toUtf8());
file.close();
file.deleteLater();*/
}

View File

@ -0,0 +1,41 @@
#ifndef COMBOBOXLISTWIDGET_H
#define COMBOBOXLISTWIDGET_H
#include <QObject>
#include <QWidget>
#include <QListWidget>
#include <QListView>
#include <QHeaderView>
#include <QFile>
#include <QList>
#include "../devitem.h"
#include "../textexplainer.h"
#include "qstandarditemmodel.h"
#include "qscrollbar.h"
class comboboxListWidget : public QListWidget
{
Q_OBJECT
public:
explicit comboboxListWidget(QWidget *parent = nullptr);
~comboboxListWidget();
void setUpList(QList<device>, QList<int> off);
QStringList nameList[2];
QStringList name;
QStringList addr;
signals:
private slots:
void addName(QString addr,QString name);
private:
textExplainer *explainer;
//QFile *file;
};
#endif // COMBOBOXLISTWIDGET_H

View File

@ -80,6 +80,7 @@ QString adbProcess::run(QString command) //Adb 命令解析 -
QString adbProcess::run(QString command, device dev) //Adb 命令解析 - 对指定设备发送单条命令
{
//qDebug() << "adbprocess dev = " << dev.addr;
if(thread)
{
explainer->thread = true;
@ -156,6 +157,7 @@ QString adbProcess::run(QString command, device dev) //Adb 命
explainer->explainOutput(output , thread);
emit outputGet(output);
//qDebug() << "run output:" << output << "\n";
return output;
}
@ -398,6 +400,9 @@ void adbProcess::on_readerror()
{
QString text = this->readAllStandardError().data();
explainer->explainError(text);
emit outputGet(text);
qDebug() << "error on adb process:" << text << "\n";
//if(text.contains(""))
//QMessageBox::information(0, "Error", this->readAllStandardError().data());
}

View File

@ -11,8 +11,88 @@ animationWidget::animationWidget(QWidget *p)
void animationWidget::playLoadAnimation()
{
animation->setDuration(750);
animation->setEndValue(QRect(301, 111, this->width(),this->height()));
animation->setStartValue(QRect(301 + 50, 111, this->width(),this->height()));
//animation->setEndValue(QPoint(301,117));
//qDebug() << "wgtHeight = " << wgtHeight;
if(parent->width() <= 600)
{
animation->setEndValue(QRect(301 - 29, 117 - 6 - 11, 600,wgtHeight));
}
else
{
animation->setEndValue(QRect(301 - 29, 117 - 6 - 11, parent->width(),wgtHeight));
}
//animation->setStartValue(QPoint(301 + 50,117));
animation->setStartValue(QRect(301 + 50 - 29, 117 - 6 - 11, parent->width()-50,wgtHeight));
animation->setEasingCurve(QEasingCurve::OutQuart);
this->show();
animation->start();
emit animationEnd();
}
void animationWidget::playLoadAnimation(int h)
{
animation->setDuration(750);
//animation->setEndValue(QPoint(301,117));
//qDebug() << "wgtHeight = " << wgtHeight;
if(parent->width() <= 600)
{
animation->setEndValue(QRect(301 - 29, 117 - 6 -11, 600,h));
}
else
{
animation->setEndValue(QRect(301 - 29, 117 - 6 - 11, parent->width(),h));
}
//animation->setStartValue(QPoint(301 + 50,117));
animation->setStartValue(QRect(301 + 50 - 29, 117 - 6 - 11, parent->width()-50,h));
animation->setEasingCurve(QEasingCurve::OutQuart);
this->show();
animation->start();
//this->setDisabled(true);
emit animationEnd();
}
void animationWidget::playLoadAnimation_sp(int h)
{
animation->setDuration(500);
//animation->setEndValue(QPoint(301,117));
//qDebug() << "wgtHeight = " << wgtHeight;
if(parent->width() <= 600)
{
animation->setEndValue(QRect(0,0, parent->width(),h));
}
else
{
animation->setEndValue(QRect(0,0, parent->width(),h));
}
//animation->setStartValue(QPoint(301 + 50,117));
animation->setStartValue(QRect(0,-10, parent->width(),h));
animation->setEasingCurve(QEasingCurve::OutQuart);
this->show();
animation->start();
emit animationEnd();
}
void animationWidget::playLoadAnimation_bp(int h)
{
animation->setDuration(500);
//animation->setEndValue(QPoint(301,117));
//qDebug() << "wgtHeight = " << wgtHeight;
if(parent->width() <= 600)
{
animation->setEndValue(QRect(301 - 29, 117 - 6 -11, 600,h));
}
else
{
animation->setEndValue(QRect(301 - 29, 117 - 6 - 11, parent->width(),h));
}
//animation->setStartValue(QPoint(301 + 50,117));
animation->setStartValue(QRect(301 - 29, 117 - 6 - 11 + 10, parent->width(),h));
animation->setEasingCurve(QEasingCurve::OutQuart);
@ -23,6 +103,49 @@ void animationWidget::playLoadAnimation()
void animationWidget::playExitAnimation()
{
animation->setDuration(300);
//animation->setEndValue(QPoint(301,117));
//qDebug() << "wgtHeight = " << wgtHeight;
if(parent->width() <= 600)
{
animation->setEndValue(QRect(301 - 29, 117 - 6 - 11 + 50, parent->width(),wgtHeight));
}
else
{
animation->setEndValue(QRect(301 - 29, 117 - 6 - 11 + 50, parent->width(),wgtHeight));
}
//animation->setStartValue(QPoint(301 + 50,117));
//animation->setStartValue(QRect(301 + 50 - 30, 117 - 6 - 11, parent->width()-50,wgtHeight));
animation->setStartValue(QRect(301 - 29, 117 - 6 - 11, parent->width(),wgtHeight));
animation->setEasingCurve(QEasingCurve::OutQuart);
this->show();
animation->start();
emit animationEnd();
}
void animationWidget::playExitAnimation_sp()
{
animation->setDuration(500);
//animation->setEndValue(QPoint(301,117));
//qDebug() << "wgtHeight = " << wgtHeight;
if(parent->width() <= 600)
{
animation->setEndValue(QRect(0,-11, parent->width(),wgtHeight));
}
else
{
animation->setEndValue(QRect(0,-11, parent->width(),wgtHeight));
}
//animation->setStartValue(QPoint(301 + 50,117));
animation->setStartValue(QRect(0,0, parent->width(),wgtHeight));
animation->setEasingCurve(QEasingCurve::OutQuart);
this->show();
animation->start();
emit animationEnd();
}
animationWidget::~animationWidget()

View File

@ -20,9 +20,14 @@ public:
explicit animationWidget(QWidget *parent = nullptr);
~animationWidget();
int wgtHeight = 427;
void playLoadAnimation();
void playLoadAnimation(int h);
void playLoadAnimation_sp(int h);
void playLoadAnimation_bp(int h);
void playExitAnimation();
void playExitAnimation_sp();
bool isBasePage;
QWidget *parent;

View File

@ -7,6 +7,7 @@ basePage::basePage(QWidget *parent) :
{
ui->setupUi(this);
SPManager = new sonPageManager;
animation_listHide = new QPropertyAnimation(ui->listWidget,"geometry");
parents = parent;
lastPage = NULL;
@ -53,19 +54,37 @@ basePage::basePage(QWidget *parent) :
"QListWidget::item:hover{background-color:rgba(255,255,255,0.7);}"
"QListWidget::item::selected{background-color:rgba(255,255,255,0.5);color:black;}"
* */
ui->listWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->listWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->listWidget->setViewMode(QListView::ListMode);
ui->listWidget->setFlow(QListView::TopToBottom);
ui->listWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//ui->listWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
ui->listWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
QFile file("://qss/scrollbar.qss");
file.open(QFile::ReadOnly);
ui->listWidget->verticalScrollBar()->setStyleSheet(file.readAll());
//QScroller::grabGesture(ui->listWidget,QScroller::LeftMouseButtonGesture);
/*
view->setViewMode(QListView::ListMode);
view->setFlow(QListView::TopToBottom);
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setHorizontalScrollMode(QListWidget::ScrollPerPixel);
QScroller::grabGesture(view,QScroller::LeftMouseButtonGesture);
*/
connect(ui->listWidget,SIGNAL(currentRowChanged(int)),this,SLOT(slot_createSonPage(int)));
/*透明度动画
exitOpacity = new QGraphicsOpacityEffect (this);//创建QGraphicsOpacityEffect对象关联控件ui.widgetProcess
exitOpacity->setOpacity(1);//设置透明度为0隐藏控件
this->setGraphicsEffect(exitOpacity);//控件添加绘图效果*/
}
basePage::~basePage()
{
qDebug() << "basepagepos = " << this->pos();
//sleep(1000);
//qDebug() << "~basePage" << "\n";
/*
@ -75,6 +94,7 @@ basePage::~basePage()
//qDebug() << "~basePage deleted" << "\n";
delete SPManager;
delete ui;
//qDebug() << "~basePage com" << "\n";
}
/*
void basePage::playExitAnimation()
@ -100,19 +120,66 @@ void basePage::setFather(QWidget *parent)
void basePage::slot_createSonPage(int key)
{
emit creatingSonPage();
if(isEnable(key) && key >= 0)
{
this->setDisabled(true);
listTimer = new QTimer(this);
connect(listTimer, SIGNAL(timeout()), this, SLOT(slot_spgAnimationEnd()));
listTimer->setSingleShot(true);
listTimer->start(300);
emit creatingSonPage();
ui->listWidget->setCurrentRow(-1);
//qDebug() << "dev of basePage = " << dev.addr;
sonPage = SPManager->selector(this,whoAmI(),key,dev);
if(sonPage != NULL)
{
ui->listWidget->setVisible(false);
ui->mainLayout->addWidget(sonPage);
//ui->listWidget->setVisible(false);
/**/
//sonPage->setVisible(false);
animation_listHide->setDuration(300);
animation_listHide->setEndValue(QRect(ui->listWidget->geometry().x(),ui->listWidget->geometry().y() + 50, ui->listWidget->width(),ui->listWidget->height()));
animation_listHide->setStartValue(ui->listWidget->geometry());
animation_listHide->setEasingCurve(QEasingCurve::OutQuart);
animation_listHide->start();
//sonPage->playLoadAnimation_sp();
//animation->deleteLater();
/*
qDebug() << "wgtHeight = " << wgtHeight;
if(parent->width() <= 600)
{
animation->setEndValue(QRect(301 - 30, 117 - 6 - 11, 600,wgtHeight));
}
else
{
animation->setEndValue(QRect(301 - 30, 117 - 6 - 11, parent->width(),wgtHeight));
}
//animation->setStartValue(QPoint(301 + 50,117));
animation->setStartValue(QRect(301 + 50 - 30, 117 - 6 - 11, parent->width()-50,wgtHeight));
animation->setEasingCurve(QEasingCurve::OutQuart);
this->show();
animation->start();
*/
/**/
}
}
//ui->listWidget->setCurrentRow(-1);
ui->listWidget->setCurrentRow(-1);
}
void basePage::spg_return_pushed()
{
sonPage->playExitAnimation_sp();
QTimer *animationTimer = new QTimer(this);
animationTimer->setSingleShot(true);
animationTimer->start(300);
connect(animationTimer, SIGNAL(timeout()), this, SLOT(slot_destroySonPage()));
}
void basePage::slot_destroySonPage()
@ -120,9 +187,11 @@ void basePage::slot_destroySonPage()
if(sonPage == NULL)
throw "trying to destroy sonPage, but sonPage == NULL;";
sonPage->~QWidget();
delete sonPage;
sonPage = NULL;
ui->listWidget->setVisible(true);
playLoadAnimation_bp(this->height());
}
QString basePage::whoAmI()
@ -165,3 +234,17 @@ void basePage::self_castrate()
delete ui->mainLayout;
delete ui->verticalLayout;
}
void basePage::unlock()
{
this->setDisabled(false);
}
void basePage::slot_spgAnimationEnd()
{
ui->listWidget->setVisible(false);
unlock();
ui->mainLayout->addWidget(sonPage);
sonPage->playLoadAnimation_sp(this->height());
//sonPage->setVisible(true);
}

View File

@ -5,6 +5,9 @@
#include <QGraphicsEffect>
#include <QGraphicsOpacityEffect>
#include <QPropertyAnimation>
#include <QScroller>
#include <QScrollBar>
#include "pagelistitem.h"
#include "sonPages/sonpagemanager.h"
#include "animationwidget.h"
@ -26,7 +29,7 @@ public:
QWidget *parents;
basePage *lastPage;
QWidget *sonPage;
animationWidget *sonPage;
QWidget *father;
QString myName;
sonPageManager *SPManager;
@ -51,6 +54,9 @@ private:
bool isEnable(int k);
QTimer *listTimer;
QPropertyAnimation *animation_listHide;
//QGraphicsOpacityEffect* exitOpacity;
public slots:
@ -61,6 +67,9 @@ public slots:
private slots:
void slot_createSonPage(int key);
void slot_destroySonPage();
void unlock();
void slot_spgAnimationEnd();
void spg_return_pushed();
};
#endif // BASEPAGE_H

View File

@ -10,6 +10,11 @@
<height>550</height>
</rect>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
@ -21,21 +26,53 @@
<number>0</number>
</property>
<property name="topMargin">
<number>11</number>
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>11</number>
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="mainLayout">
<property name="rightMargin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="listWidget">
<property name="minimumSize">
<size>
<width>600</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<family>MiSans Medium</family>
</font>
</property>
<property name="cursor" stdset="0">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="mouseTracking">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustIgnored</enum>
</property>
<property name="autoScroll">
<bool>false</bool>
</property>
</widget>
</item>
</layout>

3
QtAdb/cfg/name.cfg Normal file
View File

@ -0,0 +1,3 @@
###NAME###
CB512EJM8C:test
###ENDNAME###

5
QtAdb/cfgs.qrc Normal file
View File

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/cfgs">
<file>cfg/name.cfg</file>
</qresource>
</RCC>

59
QtAdb/devitem.cpp Normal file
View File

@ -0,0 +1,59 @@
#include "devitem.h"
#include "ui_devitem.h"
devItem::devItem(QWidget *parent) :
QWidget(parent),
ui(new Ui::devItem)
{
ui->setupUi(this);
explainer = new textExplainer();
QGraphicsDropShadowEffect *shadowEffect_wgt = new QGraphicsDropShadowEffect(this);
shadowEffect_wgt->setOffset(0,0);
shadowEffect_wgt->setColor(Qt::gray);
shadowEffect_wgt->setBlurRadius(5);
ui->widget_phone->setGraphicsEffect(shadowEffect_wgt);
ui->widget_2->setStyleSheet("QToolTip{border:1px solid #BDBDBD; background-color: #ffffff; color:rgba(117, 117, 117, 0.9);font-family: MiSans Medium; font-size:12px;border-radius:4px;}");
ui->lineEdit->hide();
}
devItem::~devItem()
{
delete ui;
}
void devItem::setAddr(QString s)
{
ui->label_addr_info->setText("序列号\n" + s);
}
void devItem::setDevModel(QString s)
{
ui->label_model_info->setText("型号\n" + explainer->get_words_after(s, ":"));
}
void devItem::setDevice(QString s)
{
ui->label_device_info->setText("设备代号\n" + explainer->get_words_after(s, ":"));
}
void devItem::setName(QString s)
{
ui->lineEdit->setText(s);
}
void devItem::setStat(QString s)
{
ui->label_stat_info->setText(s);
if(s=="[未授权]")
{
ui->label_stat_info->setStyleSheet("background-color: rgba(237,90,101,0.6);"
"border:0px solid #BDBDBD;"
"border-radius:15px;");
}
}
void devItem::on_lineEdit_editingFinished()
{
emit addName(ui->label_addr_info->text(),ui->lineEdit->text());
}

39
QtAdb/devitem.h Normal file
View File

@ -0,0 +1,39 @@
#ifndef DEVITEM_H
#define DEVITEM_H
#include <QWidget>
#include <QGraphicsDropShadowEffect>
//#include "abstract/comboboxlistwidget.h"
#include "textexplainer.h"
namespace Ui {
class devItem;
}
class devItem : public QWidget
{
Q_OBJECT
public:
explicit devItem(QWidget *parent = nullptr);
~devItem();
void setAddr(QString);
void setDevModel(QString);
void setDevice(QString);
void setName(QString);
void setStat(QString);
textExplainer *explainer;
private slots:
void on_lineEdit_editingFinished();
private:
Ui::devItem *ui;
signals:
void addName(QString,QString);
};
#endif // DEVITEM_H

343
QtAdb/devitem.ui Normal file
View File

@ -0,0 +1,343 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>devItem</class>
<widget class="QWidget" name="devItem">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>232</width>
<height>317</height>
</rect>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">border:0px;
border-radius:8px;
background-color: rgba(255, 255, 255, 255);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="leftMargin">
<number>30</number>
</property>
<property name="rightMargin">
<number>30</number>
</property>
<item>
<widget class="QWidget" name="widget_2" native="true">
<property name="toolTip">
<string>点击选择此设备</string>
</property>
<property name="styleSheet">
<string notr="true">/*background-color: rgb(255, 255, 255);*/
border:0px solid #BDBDBD;border-radius:8px;background-color: rgba(0, 0, 0, 0.4);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget_phone" native="true">
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string/>
</property>
<property name="styleSheet">
<string notr="true">/*background-color: rgb(255, 255, 255);*/
border:0px solid #BDBDBD;border-radius:8px;background-color: rgba(0, 0, 0, 0.4);</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
<number>2</number>
</property>
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item>
<widget class="QWidget" name="widget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">/*background-color: rgb(255, 255, 255);*/
border:0px solid #BDBDBD;
border-radius:8px;
background-color:white;</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>10</number>
</property>
<item>
<widget class="QLineEdit" name="lineEdit">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(0,0,0,0.1);
border:0px solid #BDBDBD;
border-radius:15px;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_model_info">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(0,0,0,0.1);
border:0px solid #BDBDBD;
border-radius:15px;</string>
</property>
<property name="text">
<string>型号</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_addr_info">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(0,0,0,0.1);
border:0px solid #BDBDBD;
border-radius:15px;</string>
</property>
<property name="text">
<string>序列号</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_device_info">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(0,0,0,0.1);
border:0px solid #BDBDBD;
border-radius:15px;</string>
</property>
<property name="text">
<string>设备代号</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_stat_info">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>30</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(0,0,0,0.1);
border:0px solid #BDBDBD;
border-radius:15px;</string>
</property>
<property name="text">
<string>状态未知</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>8</width>
<height>8</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>8</width>
<height>8</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">/*background-color: rgb(255, 255, 255);*/
border:0px solid #BDBDBD;
border-radius:4px;
background-color:white;</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

Binary file not shown.

Binary file not shown.

Binary file not shown.

91
QtAdb/fonts/License.txt Normal file
View File

@ -0,0 +1,91 @@
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

Binary file not shown.

Binary file not shown.

7
QtAdb/fonts/fonts.qrc Normal file
View File

@ -0,0 +1,7 @@
<RCC>
<qresource prefix="/LXGW">
<file>LXGWWenKaiLite-Bold.ttf</file>
<file>LXGWWenKaiLite-Light.ttf</file>
<file>LXGWWenKaiLite-Regular.ttf</file>
</qresource>
</RCC>

View File

@ -71,10 +71,24 @@
<file>image/ico/about/wechat.svg</file>
<file>image/ico/logo.svg</file>
<file>image/ico/code-s-slash-line.svg</file>
<file>image/ico/share-box-line.svg</file>
<file>image/ico/user-line.svg</file>
<file>image/ico/user-settings-line.svg</file>
<file>image/ico/signal-wifi-error-line.svg</file>
<file>image/ico/donut-chart-line.svg</file>
<file>image/ico/layout-top-2-line.svg</file>
<file>image/ico/stack-line.svg</file>
<file>image/ico/edit-line.svg</file>
<file>image/ico/devices.svg</file>
<file>image/ico/QQ_tencent-qq.svg</file>
<file>image/ico/volume-vibrate-line.svg</file>
<file>image/ico/plugin.svg</file>
<file>image/ico/magisk.png</file>
</qresource>
<qresource prefix="/test">
<file>image/test/back.png</file>
<file>image/test/Lappland.png</file>
<file>image/test/logo.png</file>
</qresource>
<qresource prefix="/gif">
<file>image/gif/final.gif</file>
@ -87,5 +101,38 @@
<file>image/activatorApps/island.png</file>
<file>image/activatorApps/shizuku.png</file>
<file>image/activatorApps/taichi.png</file>
<file>image/activatorApps/scene5.png</file>
<file>image/activatorApps/watchfps.png</file>
<file>image/activatorApps/permissiondog.png</file>
<file>image/activatorApps/hail.png</file>
<file>image/activatorApps/bg.png</file>
<file>image/activatorApps/apkinstaller.png</file>
<file>image/activatorApps/default.gif</file>
</qresource>
<qresource prefix="/linkIcons">
<file>image/webicons/android.png</file>
<file>image/webicons/cheri.png</file>
<file>image/webicons/crd.png</file>
<file>image/webicons/dot.png</file>
<file>image/webicons/evoX.png</file>
<file>image/webicons/havoc.png</file>
<file>image/webicons/nus.png</file>
<file>image/webicons/OF.png</file>
<file>image/webicons/OFlogo.svg</file>
<file>image/webicons/paranoid.png</file>
<file>image/webicons/pp.png</file>
<file>image/webicons/projectarcana.png</file>
<file>image/webicons/rr.png</file>
<file>image/webicons/spark.svg</file>
<file>image/webicons/syb.png</file>
<file>image/webicons/twrp.png</file>
<file>image/webicons/atmb.png</file>
<file>image/webicons/jamcz.png</file>
<file>image/webicons/los.png</file>
<file>image/webicons/lsposed.png</file>
<file>image/webicons/magisk.png</file>
<file>image/webicons/pe.png</file>
<file>image/webicons/scrcpy.svg</file>
<file>image/webicons/MIUI.png</file>
</qresource>
</RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23.7927 44.5178C20.1344 44.5178 16.7762 43.2933 14.6142 41.4646C13.5161 41.7927 12.1115 42.3204 11.2254 42.9751C10.4664 43.535 10.5613 44.1059 10.6979 44.3362C11.298 45.3491 20.9938 44.9831 23.7927 44.6678V44.5178ZM23.7927 44.5178C27.4516 44.5178 30.8095 43.2933 32.9718 41.4646C34.0693 41.7927 35.4742 42.3204 36.3606 42.9751C37.119 43.535 37.0244 44.1059 36.8875 44.3362C36.2874 45.3491 26.5919 44.9831 23.7927 44.6678V44.5178Z" fill="#333"/><path fill-rule="evenodd" clip-rule="evenodd" d="M36.3386 20.9326C34.6979 21.3809 29.856 22.5505 23.8144 22.5914H23.7698C17.5753 22.5491 12.6423 21.3214 11.1274 20.8999C10.816 20.8129 10.6458 20.6334 10.6458 20.6334C10.644 20.5785 10.6207 19.6503 10.6207 19.171C10.6207 11.1055 14.4284 3.00029 23.7922 3C33.1561 3.00029 36.9635 11.1052 36.9635 19.1713C36.9635 19.65 36.9402 20.5785 36.9387 20.6337C36.9387 20.6337 36.7297 20.8255 36.3386 20.9326ZM38.8284 25.3504C39.3462 26.7001 39.8573 28.1055 40.2318 29.3107C42.0176 35.0578 41.4388 37.4364 40.9986 37.4898C40.0532 37.6039 37.3187 33.1634 37.3187 33.1634C37.3187 37.6757 33.2448 44.604 23.916 44.6677H23.6685C14.3394 44.604 10.2655 37.6757 10.2655 33.1634C10.2655 33.1634 7.53131 37.6039 6.58588 37.4895C6.14542 37.4364 5.5666 35.0581 7.35268 29.3107C7.72717 28.1058 8.23827 26.7001 8.75609 25.3504C8.75609 25.3504 9.10519 25.3285 9.28207 25.3795C10.7319 25.798 12.2762 26.1689 13.8447 26.4792C13.5776 28.1343 13.4249 30.1827 13.5692 32.6021C13.9533 39.0363 17.7745 43.081 23.6727 43.1394H23.9121C29.8106 43.081 33.6314 39.0363 34.0161 32.6021C34.1604 30.1823 34.0075 28.1345 33.7402 26.4793C35.3363 26.1633 36.9076 25.7848 38.3798 25.3571C38.5307 25.3136 38.8284 25.3504 38.8284 25.3504ZM33.7402 26.4793C30.3004 27.1601 26.7448 27.5502 23.8144 27.5147H23.7698C20.8396 27.5498 17.2841 27.1598 13.8447 26.4792C13.8586 26.3929 13.8728 26.3076 13.8874 26.2234C17.3136 26.8989 20.8513 27.2853 23.769 27.2503H23.8137L23.814 27.25C26.7323 27.2856 30.2709 26.8989 33.6974 26.2231C33.712 26.3074 33.7262 26.3928 33.7402 26.4793ZM18.0376 11.6868C18.1059 13.5266 19.1912 14.9735 20.4615 14.916C21.7309 14.8594 22.7044 13.3208 22.6349 11.4802C22.566 9.6398 21.4811 8.19348 20.2122 8.2504C18.9419 8.30791 17.9687 9.84646 18.0376 11.6868ZM27.1253 14.916C28.3957 14.9735 29.4809 13.5263 29.5489 11.6868C29.6181 9.84646 28.6449 8.30791 27.3746 8.2504C26.1055 8.19378 25.0208 9.64009 24.9519 11.4805C24.8825 13.3208 25.8556 14.8591 27.1253 14.916ZM23.8148 15.9248C28.0469 15.9248 31.4658 16.7625 31.805 17.5141V17.5144C31.821 17.5477 31.8295 17.5841 31.8298 17.621C31.8294 17.6731 31.8131 17.7238 31.7831 17.7663C31.497 18.1835 27.701 20.2436 23.8148 20.2436H23.7692C19.8827 20.2436 16.0867 18.1829 15.8006 17.7663C15.7708 17.7239 15.7545 17.6734 15.7539 17.6216C15.7542 17.5845 15.7627 17.5479 15.7787 17.5144C16.1182 16.7625 19.5368 15.9248 23.7692 15.9248H23.8148Z" fill="#333"/><path d="M22.0218 11.7142C22.0799 12.441 21.6812 13.0867 21.1327 13.157C20.5831 13.2277 20.0912 12.6958 20.0329 11.969C19.9754 11.2416 20.3735 10.596 20.9211 10.5259C21.4716 10.4547 21.9643 10.9871 22.0218 11.7139V11.7142ZM25.5117 11.9571C25.624 11.7559 26.3885 10.6984 27.9714 11.0834C28.3874 11.1847 28.5797 11.3336 28.6203 11.392C28.6801 11.4784 28.6968 11.6015 28.6358 11.7673C28.5155 12.096 28.2671 12.087 28.1296 12.0227C28.0406 11.9813 26.9381 11.2463 25.9223 12.3429C25.8523 12.418 25.7274 12.4439 25.6091 12.3546C25.4903 12.2647 25.4416 12.0832 25.5117 11.9571Z" fill="#333"/><path d="M15.5039 26.7117V33.0437C15.5039 33.0437 18.4044 33.6286 21.3105 33.2235V27.383C19.4695 27.2788 17.4841 27.0468 15.5039 26.7117Z" fill="#333"/><path d="M36.9385 20.6337C36.9385 20.6337 31.2962 22.4148 23.8142 22.4653H23.7695C16.2998 22.4151 10.6648 20.6395 10.6456 20.6337L8.75586 25.35C13.4824 26.775 19.3401 27.6933 23.7695 27.6399H23.8142C28.2436 27.6933 34.101 26.775 38.8282 25.35L36.9385 20.6337Z" fill="#333"/></svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23 43H43V5H14V15" stroke="#333" stroke-width="2" stroke-linejoin="round"/><path d="M5 15H23V43H5L5 15Z" fill="none" stroke="#333" stroke-width="2" stroke-linejoin="round"/><path d="M13 37H15" stroke="#333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M28 37H30" stroke="#333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>

After

Width:  |  Height:  |  Size: 519 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0H24V24H0z"/><path d="M11 2.05v2.012C7.054 4.554 4 7.92 4 12c0 4.418 3.582 8 8 8 1.849 0 3.55-.627 4.906-1.68l1.423 1.423C16.605 21.153 14.4 22 12 22 6.477 22 2 17.523 2 12c0-5.185 3.947-9.449 9-9.95zM21.95 13c-.2 2.011-.994 3.847-2.207 5.328l-1.423-1.422c.86-1.107 1.436-2.445 1.618-3.906h2.013zM13.002 2.05c4.724.469 8.48 4.226 8.95 8.95h-2.013c-.451-3.618-3.319-6.486-6.937-6.938V2.049z"/></svg>

After

Width:  |  Height:  |  Size: 505 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M6.414 16L16.556 5.858l-1.414-1.414L5 14.586V16h1.414zm.829 2H3v-4.243L14.435 2.322a1 1 0 0 1 1.414 0l2.829 2.829a1 1 0 0 1 0 1.414L7.243 18zM3 20h18v2H3v-2z"/></svg>

After

Width:  |  Height:  |  Size: 295 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M21 3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm-1 2H4v14h16V5zm-2 2v2H6V7h12z"/></svg>

After

Width:  |  Height:  |  Size: 241 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 725 B

After

Width:  |  Height:  |  Size: 51 KiB

BIN
QtAdb/image/ico/magisk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

View File

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><style>.cls-1{fill:#fff;}</style></defs><title>画板 1</title><rect class="cls-1" x="111" y="111" width="290" height="290"/><path d="M388,124V388H124V124H388m26-26H98V414H414V98Z"/><rect x="175" y="42" width="162" height="213"/><path d="M324,55V242H188V55H324m26-26H162V268H350V29Z"/></svg>

After

Width:  |  Height:  |  Size: 394 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 3v2H5v14h14v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h6zm7.586 2H13V3h8v8h-2V6.414l-7 7L10.586 12l7-7z"/></svg>

After

Width:  |  Height:  |  Size: 255 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0H24V24H0z"/><path d="M12 3c4.284 0 8.22 1.497 11.31 3.996l-1.257 1.556C19.306 6.331 15.808 5 12 5c-3.089 0-5.973.875-8.419 2.392L12 17.817l6-7.429v3.183L12 21 .69 6.997C3.78 4.497 7.714 3 12 3zm10 16v2h-2v-2h2zm0-9v7h-2v-7h2z"/></svg>

After

Width:  |  Height:  |  Size: 342 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M20.083 15.2l1.202.721a.5.5 0 0 1 0 .858l-8.77 5.262a1 1 0 0 1-1.03 0l-8.77-5.262a.5.5 0 0 1 0-.858l1.202-.721L12 20.05l8.083-4.85zm0-4.7l1.202.721a.5.5 0 0 1 0 .858L12 17.65l-9.285-5.571a.5.5 0 0 1 0-.858l1.202-.721L12 15.35l8.083-4.85zm-7.569-9.191l8.771 5.262a.5.5 0 0 1 0 .858L12 13 2.715 7.429a.5.5 0 0 1 0-.858l8.77-5.262a1 1 0 0 1 1.03 0zM12 3.332L5.887 7 12 10.668 18.113 7 12 3.332z"/></svg>

After

Width:  |  Height:  |  Size: 529 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M4 22a8 8 0 1 1 16 0h-2a6 6 0 1 0-12 0H4zm8-9c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4z"/></svg>

After

Width:  |  Height:  |  Size: 298 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 14v2a6 6 0 0 0-6 6H4a8 8 0 0 1 8-8zm0-1c-3.315 0-6-2.685-6-6s2.685-6 6-6 6 2.685 6 6-2.685 6-6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm2.595 7.812a3.51 3.51 0 0 1 0-1.623l-.992-.573 1-1.732.992.573A3.496 3.496 0 0 1 17 14.645V13.5h2v1.145c.532.158 1.012.44 1.405.812l.992-.573 1 1.732-.992.573a3.51 3.51 0 0 1 0 1.622l.992.573-1 1.732-.992-.573a3.496 3.496 0 0 1-1.405.812V22.5h-2v-1.145a3.496 3.496 0 0 1-1.405-.812l-.992.573-1-1.732.992-.572zM18 19.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"/></svg>

After

Width:  |  Height:  |  Size: 651 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M19.39 3.161l1.413 1.414-2.475 2.475 2.475 2.475L18.328 12l2.475 2.476-2.475 2.475 2.475 2.475-1.414 1.414-3.889-3.89 2.475-2.474L15.5 12l2.475-2.475L15.5 7.05l3.89-3.889zm-6.503.578a.5.5 0 0 1 .113.316v15.89a.5.5 0 0 1-.817.387L6.89 15.999 3 16a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .704.07zM11 7.22L7.603 9.999H4V14l3.603-.001L11 16.779V7.22z" fill="#000"/></svg>

After

Width:  |  Height:  |  Size: 515 B

BIN
QtAdb/image/test/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

BIN
QtAdb/image/webicons/OF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

View File

@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Copyright © fordownloads, 2020 · OrangeFox Recovery -->
<linearGradient id="lg_a" x1="24" x2="30" y1="32" y2="36" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#e90600"/>
<stop offset="1" stop-color="#ff931e"/>
</linearGradient>
<linearGradient id="lg_b" x1="20" x2="28" y1="20" y2="28" xlink:href="#lg_a"/>
<linearGradient id="lg_c" x1="16" x2="36" y1="16" y2="36" xlink:href="#lg_a"/>
<linearGradient id="lg_d" x1="12" x2="24" y1="20" y2="20" xlink:href="#lg_a"/>
<linearGradient id="lg_e" x1="8" x2="54" y1="32" y2="32" xlink:href="#lg_a" gradientTransform="rotate(45 24 15)" />
<path fill="url(#lg_a)" d="M28.12 38.33c-.08 0-.16 0-.24-.02-.76-.08-1.39-.6-1.63-1.33l-.05-.16c-.1-.28-.22-.6-.5-1.83a15.2 15.2 0 01-.31-2.05c-.04-.43-.11-1.31.6-1.87.39-.3.87-.4 1.43-.28.99.18 1.66.85 1.9 1.13 1.27 1.49 1.04 3.33.92 4.33-.06.49-.26.85-.44 1.14-.35.59-1 .94-1.68.94zm.33-2.08z"/>
<path fill="url(#lg_b)" d="M27.38 27.5a8.78 8.78 0 01-3.2-.63c-1.37-.54-2.6-1.3-3.8-2.02-.3-.18-.52-.31-.76-.42-.62-.28-.86-.12-1.08.1-.19.18-.4.34-.68.5a1.16 1.16 0 01-1.17-2l.24-.16c.99-.96 2.28-1.16 3.63-.55.3.13.6.3.96.51 1.23.75 2.32 1.42 3.5 1.88 1 .39 1.94.53 2.87.45.13-.01.26-.04.4-.07-.1-.27-.2-.49-.31-.66a1.16 1.16 0 111.93-1.27c.27.41.5.9.68 1.5a1.95 1.95 0 01-1.25 2.52 4.9 4.9 0 01-1.96.32zm1-2.15h.01-.01z"/>
<path fill="url(#lg_c)" d="M21.6 39.54a1.87 1.87 0 01-1.73-1.14 7.36 7.36 0 01-.66-2.45l-.02.42c-.02.53-.16 1.01-.27 1.4-.27.98-1.4 1.41-2.27 1.2a2.25 2.25 0 01-1.56-1.35 6.18 6.18 0 01-.45-1.46 19.22 19.22 0 01-.23-3.23 12 12 0 00-.43-3.46c-.12-.46-.27-.92-.41-1.38-.16-.5-.31-.99-.44-1.5a1.16 1.16 0 112.24-.58c.12.47.27.93.41 1.4l.44 1.48a14.12 14.12 0 01.5 4.01l.04 1.06c.03.65.08 1.18.14 1.65l.05-1.87.02-1c0-.13 0-.24.03-.34l.02-.13c.06-.42.15-.99.59-1.5.64-.78 1.35-.8 1.82-.68.7.17 1.2.68 1.37 1.38l.08.35c.11.44.22.88.3 1.33l.18 1.43c.06.46.12.93.2 1.4v-.05c.05-.65.08-1.3.1-1.95l.07-1.15c.05-.94.49-1.71 1.23-2.18 1-.62 2.15-.87 3.35-.73.5.06.95.2 1.41.33a5.85 5.85 0 013.39 2.58c.32.53.62 1.08.91 1.63l.48.88.05.1.24.43c-.44-1.28-.9-2.55-1.36-3.82l-.4-1.08-.91-2.5a2.5 2.5 0 01.86-2.87c.18-.13.35-.26.51-.4l.22-.2c.23-.19.45-.37.61-.56.34-.38.52-.8.58-1.33.08-.81.06-1.42-.06-1.96a5.7 5.7 0 00-.94-2.03 19.8 19.8 0 00-2.25-2.57 11.13 11.13 0 01-1.72-2.27 4.68 4.68 0 01-.62-3.33l.25-1.13.05-.23c-.33.2-.67.44-1.03.74a4.91 4.91 0 00-1.8 3.89c-.02.95.25 1.85.8 2.7.57.86 1.16 1.7 1.75 2.55l.65.92.64.9c.44.62.88 1.24 1.3 1.87a1.16 1.16 0 11-1.94 1.27c-.4-.6-.82-1.2-1.24-1.8l-.66-.91-.64-.92c-.6-.86-1.22-1.73-1.8-2.61a7.04 7.04 0 01-1.18-4 7.2 7.2 0 012.63-5.63 7.74 7.74 0 013.45-1.77c.72-.11 1.13.2 1.33.39.19.2.49.62.37 1.32-.06.33-.14.66-.22 1l-.2.85c-.09.35-.17.7-.24 1.06-.11.56 0 1.1.35 1.72a8.8 8.8 0 001.37 1.8c.94.95 1.78 1.83 2.5 2.87a7.93 7.93 0 011.3 2.85c.18.8.2 1.62.1 2.7-.1 1-.48 1.88-1.15 2.63-.27.3-.58.57-.84.8l-.2.16c-.22.2-.46.38-.7.55a.24.24 0 00-.02.18l.92 2.5.4 1.09c.48 1.34.97 2.68 1.43 4.03.2.55.25 1.12.28 1.66.05.74-.27 1.43-.86 1.84-.58.4-1.33.47-2 .17a2.5 2.5 0 01-1.03-.88c-.33-.49-.62-1-.9-1.51l-.05-.1-.5-.92c-.27-.5-.54-1.02-.84-1.5a3.55 3.55 0 00-2.1-1.58c-.35-.11-.7-.21-1-.25a2.76 2.76 0 00-1.85.4c-.04.03-.14.08-.15.34l-.06 1.12c-.03.68-.06 1.36-.12 2.04l-.01.28c-.04.55-.08 1.23-.43 1.9-.12.25-.27.5-.52.73-.36.33-.83.51-1.3.51zm-3.05-7.53zm9.4-23.9z"/>
<path fill="url(#lg_d)" d="M14.25 27.46c-.5 0-.96-.32-1.1-.82a10.85 10.85 0 01-.38-4.59c.23-1.66.9-3.34 1.87-4.74 1.37-1.95 3.59-3.67 4.95-3.84.62-.08 1.01.14 1.24.33.65.57.46 1.36.37 1.74-.08.33-.16.66-.05 1.1.03.15.14.58.5.93.13.12.61.54 1.15.55l.2-.01c.33-.02.95-.06 1.46.46.3.32.63.9.37 1.91a3.68 3.68 0 01-2.16 2.42 3.78 3.78 0 01-2.73-.04c-.43-.13-.64-.18-.78-.12-.1.05-.49.3-.75 1.54a1.16 1.16 0 01-2.27-.5c.36-1.66 1.08-2.73 2.12-3.17.93-.4 1.76-.14 2.36.04.55.17.82.24 1.18.1.2-.08.38-.21.5-.36a4.26 4.26 0 01-3.52-4.02 9.8 9.8 0 00-2.24 2.26 8.52 8.52 0 00-1.18 7.33 1.16 1.16 0 01-1.11 1.5z"/>
<path fill="url(#lg_e)" d="M24 47.16a23 23 0 01-16.38-6.79A23 23 0 01.84 24 23 23 0 017.63 7.62a1.16 1.16 0 011.63 1.64A20.7 20.7 0 003.16 24a20.7 20.7 0 006.1 14.74A20.7 20.7 0 0024 44.84a20.7 20.7 0 0014.74-6.1 1.16 1.16 0 111.63 1.64A23 23 0 0124 47.16z"/>
<path fill="#e90600" d="M39.56 40.71c-.3 0-.6-.1-.82-.34a1.16 1.16 0 010-1.63A20.7 20.7 0 0044.84 24a20.7 20.7 0 00-6.1-14.74A20.7 20.7 0 0024 3.16a20.7 20.7 0 00-14.74 6.1 1.16 1.16 0 01-1.63-1.64A23 23 0 0124 .84a23 23 0 0116.38 6.79A23 23 0 0147.16 24a23 23 0 01-6.79 16.38c-.22.22-.52.33-.81.33z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

BIN
QtAdb/image/webicons/pe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

BIN
QtAdb/image/webicons/pp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
QtAdb/image/webicons/rr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

View File

@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" version="1.1">
<path style="opacity:0.2" d="m 16.846877,12 c -1.116351,0 -2.227419,0.912229 -2.015075,2 l 3.122973,16 -5.596557,11.109375 C 11.959876,41.871734 11.885244,42.336988 12.177176,43 c 0.278672,0.632897 0.998812,1 1.747448,1 H 24 34.075375 c 0.748637,0 1.468777,-0.367103 1.747448,-1 0.291932,-0.663012 0.217302,-1.128266 -0.181041,-1.890625 L 30.045225,30 33.168198,14 c 0.212344,-1.087771 -0.898724,-2 -2.015075,-2 H 24 Z"/>
<path style="fill:#cccccc" d="m 16.846877,11 c -1.116351,0 -2.227419,0.912229 -2.015075,2 l 3.122973,16 -5.596557,11.109375 C 11.959876,40.871734 11.885244,41.336988 12.177176,42 c 0.278672,0.632897 0.998812,1 1.747448,1 H 24 34.075375 c 0.748637,0 1.468777,-0.367103 1.747448,-1 0.291932,-0.663012 0.217302,-1.128266 -0.181041,-1.890625 L 30.045225,29 33.168198,13 c 0.212344,-1.087771 -0.898724,-2 -2.015075,-2 H 24 Z"/>
<rect style="opacity:0.2" width="40" height="32" x="4" y="6" rx="2" ry="2"/>
<path style="fill:#e4e4e4" d="m 4,33 v 2 c 0,1.108 0.892,2 2,2 h 36 c 1.108,0 2,-0.892 2,-2 v -2 z"/>
<path style="opacity:0.1" d="m 11.494141,15 a 1.5,1.5 0 0 0 -0.832032,0.255859 1.5,1.5 0 0 0 -0.40625,2.082032 l 3.13086,4.654297 C 10.404945,24.606192 8.4012371,28.299159 8.0019531,32.460938 7.9284599,34.000879 9.5546875,34 9.5546875,34 H 38.40625 c 0,0 1.672856,-3.38e-4 1.591797,-1.617188 -0.416529,-4.131451 -2.415618,-7.796833 -5.380859,-10.394531 l 3.126953,-4.65039 a 1.5,1.5 0 0 0 -0.40625,-2.082032 1.5,1.5 0 0 0 -1.125,-0.228515 1.5,1.5 0 0 0 -0.957032,0.634765 l -3.072265,4.566407 C 29.78649,18.814887 26.990024,18 24.001953,18 c -2.989385,0 -5.786177,0.815488 -8.183594,2.230469 l -3.074218,-4.56836 A 1.5,1.5 0 0 0 11.787109,15.027344 1.5,1.5 0 0 0 11.494141,15 Z"/>
<path style="fill:#077063" d="M 6,5 C 4.892,5 4,5.892 4,7 V 33 H 44 V 7 C 44,5.892 43.108,5 42,5 Z"/>
<path style="opacity:0.1;fill:#ffffff" d="M 6,5 C 4.892,5 4,5.892 4,7 V 8 C 4,6.892 4.892,6 6,6 h 36 c 1.108,0 2,0.892 2,2 V 7 C 44,5.892 43.108,5 42,5 Z"/>
<path style="fill:none;stroke:#30dd81;stroke-width:3;stroke-linecap:round" d="M 15.1998,21.000026 11.5,15.5"/>
<path style="fill:none;stroke:#30dd81;stroke-width:3;stroke-linecap:round" d="M 32.799764,21.000026 36.5,15.5"/>
<path style="fill:#30dd81" d="m 24.002386,17.000034 c -8.355868,0 -15.2214979,6.346843 -15.9999669,14.460906 C 7.9289259,33.000882 9.5544999,33 9.5544999,33 H 38.406003 c 0,0 1.672201,-3.35e-4 1.591142,-1.617185 C 39.182807,23.305596 32.331836,17.000034 24.002386,17.000034 Z"/>
<path style="opacity:0.2" d="m 16,25 a 1.9999959,1.9999959 0 0 0 -2,2 1.9999959,1.9999959 0 0 0 2,2 1.9999959,1.9999959 0 0 0 2,-2 1.9999959,1.9999959 0 0 0 -2,-2 z m 16,0 a 1.9999959,1.9999959 0 0 0 -2,2 1.9999959,1.9999959 0 0 0 2,2 1.9999959,1.9999959 0 0 0 2,-2 1.9999959,1.9999959 0 0 0 -2,-2 z"/>
<path style="fill:#ffffff" d="M 15.999996,24.000008 A 1.9999959,1.9999959 0 0 1 17.999992,26.000004 1.9999959,1.9999959 0 0 1 15.999996,28 1.9999959,1.9999959 0 0 1 14,26.000004 1.9999959,1.9999959 0 0 1 15.999996,24.000008 Z"/>
<path style="fill:#ffffff" d="M 31.999996,24.000008 A 1.9999959,1.9999959 0 0 1 33.999991,26.000004 1.9999959,1.9999959 0 0 1 31.999996,28 1.9999959,1.9999959 0 0 1 30,26.000004 1.9999959,1.9999959 0 0 1 31.999996,24.000008 Z"/>
<path style="fill:#ffffff;opacity:0.2" d="M 11.494141 14 A 1.5 1.5 0 0 0 10.662109 14.255859 A 1.5 1.5 0 0 0 10.115234 16.001953 A 1.5 1.5 0 0 1 10.662109 15.255859 A 1.5 1.5 0 0 1 11.494141 15 A 1.5 1.5 0 0 1 11.787109 15.027344 A 1.5 1.5 0 0 1 12.744141 15.662109 L 15.818359 20.230469 C 18.215776 18.815488 21.012568 18 24.001953 18 C 26.990024 18 29.78649 18.814887 32.183594 20.228516 L 35.255859 15.662109 A 1.5 1.5 0 0 1 36.212891 15.027344 A 1.5 1.5 0 0 1 37.337891 15.255859 A 1.5 1.5 0 0 1 37.910156 16.001953 A 1.5 1.5 0 0 0 37.337891 14.255859 A 1.5 1.5 0 0 0 36.212891 14.027344 A 1.5 1.5 0 0 0 35.255859 14.662109 L 32.183594 19.228516 C 29.78649 17.814887 26.990024 17 24.001953 17 C 21.012568 17 18.215776 17.815488 15.818359 19.230469 L 12.744141 14.662109 A 1.5 1.5 0 0 0 11.787109 14.027344 A 1.5 1.5 0 0 0 11.494141 14 z M 35.033203 21.369141 L 34.617188 21.988281 C 37.477056 24.493668 39.433905 27.993356 39.943359 31.945312 C 39.986866 31.783283 40.008864 31.598575 39.998047 31.382812 C 39.601372 27.448291 37.768055 23.938648 35.033203 21.369141 z M 12.970703 21.373047 C 10.220358 23.959215 8.3822757 27.496796 8.0019531 31.460938 C 7.9920657 31.668114 8.0150508 31.844846 8.0585938 32 C 8.5570234 28.027243 10.515755 24.509049 13.386719 21.992188 L 12.970703 21.373047 z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1,3 @@
<svg width="235" height="235" viewBox="0 0 235 235" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M108.396 1.68253C104.296 2.98253 98.2956 8.18252 92.8956 15.3825C84.2956 26.7825 76.0956 30.6825 64.3956 28.6825C46.0956 25.6825 35.1956 29.4825 29.3956 40.9825C26.5956 46.6825 26.0956 54.8825 27.9956 65.0825C29.8956 75.5825 25.7956 85.5825 16.8956 91.9825C3.39564 101.583 -0.704361 108.483 0.0956394 119.583C0.695639 128.083 3.39564 132.183 13.1956 140.183C26.7956 151.183 29.8956 157.283 27.9956 169.683C24.8956 189.483 28.6956 199.583 41.6956 205.683C45.9956 207.783 47.1956 207.883 55.8956 207.083C79.6956 205.083 81.1956 205.683 96.0956 223.583C102.296 231.183 107.196 233.883 114.996 234.483C125.296 235.283 131.596 231.883 139.496 221.383C150.596 206.583 154.296 205.183 177.096 207.183C188.696 208.183 193.396 206.783 199.396 200.883C206.596 193.783 208.496 184.683 205.796 170.283C203.696 158.783 207.796 149.783 218.996 141.683C230.096 133.583 234.296 126.983 234.196 117.683C234.096 108.083 229.596 100.883 219.596 93.7825C207.496 85.2825 203.996 77.3825 205.996 63.5825C208.396 46.7825 205.296 37.2825 195.496 31.1825C191.496 28.7825 189.296 28.1825 183.496 27.8825C179.596 27.6825 173.896 27.8825 170.896 28.3825C157.296 30.4825 149.296 26.8825 140.396 14.7825C137.696 10.9825 133.296 6.48253 130.696 4.68253C126.596 1.78253 124.8 0.319882 118.5 0.0198822C114.5 -0.180118 109.996 1.18253 108.396 1.68253ZM134.696 56.3825C134.996 58.6825 129.896 75.8825 123.296 94.9825C121.396 100.483 119.896 105.083 119.896 105.283C119.896 105.483 126.996 105.683 135.796 105.683C153.596 105.683 155.296 106.283 152.996 111.483C150.296 117.183 113.096 175.583 109.596 179.383C107.096 182.183 105.296 182.283 103.996 179.883C102.996 177.883 104.696 170.283 112.996 140.783C115.196 132.983 116.896 126.283 116.596 126.083C116.396 125.883 107.996 125.383 97.7956 124.983C80.2956 124.183 79.3956 124.083 79.0956 122.183C78.7956 119.983 95.4956 97.2825 116.696 70.9825C123.096 62.9825 128.896 55.7825 129.396 55.0825C130.896 52.8825 134.296 53.7825 134.696 56.3825Z" fill="#252525"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

View File

@ -22,6 +22,14 @@
<height>35</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
@ -50,14 +58,14 @@ border-color: rgb(152, 152, 152);</string>
<widget class="QLabel" name="stick">
<property name="minimumSize">
<size>
<width>5</width>
<height>20</height>
<width>4</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>5</width>
<height>25</height>
<width>4</width>
<height>16</height>
</size>
</property>
<property name="autoFillBackground">
@ -117,14 +125,15 @@ border-radius:4px;*/</string>
</property>
<property name="font">
<font>
<family>MiSans Normal</family>
<family>LXGW WenKai Lite</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255, 0);</string>
</property>
<property name="text">
<string>TextLabel</string>
<string/>
</property>
</widget>
</item>

BIN
QtAdb/logo.aps Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -13,10 +13,17 @@
int main(int argc, char *argv[])
{
//QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QApplication a(argc, argv);
/*
QFont font;
int index = QFontDatabase::addApplicationFont(":/fonts/fonts/MiSans-Normal.ttf");
int index = QFontDatabase::addApplicationFont(":/fonts/fonts/MiSans-Normal.ttf");*/
QFontDatabase::addApplicationFont(":/LXGW/LXGWWenKaiLite-Regular.ttf");
/*
if (index != -1)
{
QStringList fontList(QFontDatabase::applicationFontFamilies(index));
@ -26,8 +33,11 @@ int main(int argc, char *argv[])
font.setBold(false);
}
}
a.setFont(font);
a.setStyleSheet("QToolTip{border:1px solid #BDBDBD; background-color: #ffffff; color:rgba(117, 117, 117, 0.9);font-family: MiSans Medium; font-size:12px;border-radius:4px;}");
a.setFont(font);*/
a.setFont(QFont("LXGW WenKai Lite"));
a.setStyleSheet("QToolTip{border:1px solid #BDBDBD; background-color: #ffffff; color:rgba(117, 117, 117, 0.9);font-family: 'LXGW WenKai Lite'; font-size:12px;border-radius:4px;}");
QTranslator translator;
const QStringList uiLanguages = QLocale::system().uiLanguages();

View File

@ -1,19 +1,14 @@
#include "mainwindow.h"
#include "qobjectdefs.h"
#include "ui_mainwindow.h"
/*
*
* ******************************adbProcess read std output不应与主页面位于同一个线程
*
*
*
*/
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
initEnvironmentPATH();
/*加载动画GIF*/
@ -25,7 +20,9 @@ MainWindow::MainWindow(QWidget *parent)
/*devList 中的当前设备索引*/
current_device = 0;
ui->comboBox->setPlaceholderText("请先选择设备");
ui->dynamic_island->setText("请先选择设备");
ui->dynamic_island->setStyleSheet("background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;");
//ui->comboBox->setPlaceholderText("点击此处选择设备");
/*连接信号与槽*/
connect(this->ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(setCurrentDevice(int))); //更改当前设备
@ -35,11 +32,26 @@ MainWindow::MainWindow(QWidget *parent)
/*设置界面*/
addIndexItems(); //设置左侧目录
setStyles(); //设置样式
view = new comboboxListWidget(ui->comboBox);
ui->comboBox->setModel(view->model());
ui->comboBox->setView(view);
//ui->pluginBtn->hide();
/*初始化对象*/
process = new adbProcess();
explainer = new textExplainer();
maker = new pageMaker();
listener = new usb_listener();
connect(listener, SIGNAL(DeviceChanged()),this,SLOT(refreshDevListLater()));
connect(this, SIGNAL(adbDeviceChanged()),this,SLOT(DeviceChanged()));
qApp->installNativeEventFilter(listener);
//listener->EmitMySignal();
this->setAttribute(Qt::WA_NativeWindow);
/*启动监听*/
/*启动ADB将延长页面创建时间在此期间显示启动界面显示了个勾八*/
process->run("adb server");
@ -47,8 +59,12 @@ MainWindow::MainWindow(QWidget *parent)
/*用户未选择设备前,锁定界面*/
this->update();
on_refreshButton_clicked();
initBasePage(6);
currentPage->playLoadAnimation(427);
lock();
reset_monitorBars();
}
MainWindow::~MainWindow()
@ -62,44 +78,264 @@ MainWindow::~MainWindow()
void MainWindow::initEnvironmentPATH() //方法:设置环境变量
{
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF_8"));
/*
QString envPath = qgetenv("PATH"); //获取当前环境变量
QString appDirPath = QApplication::applicationDirPath(); //获取程序所在位置
QString userPath = appDirPath + "\\platform-tools"; //向字符串中添加ADB环境
envPath += QDir::toNativeSeparators(userPath).prepend(';');
qputenv("PATH",envPath.toStdString().c_str()); //更改环境变量
qputenv("PATH",envPath.toStdString().c_str());*/ //更改环境变量
//qDebug() << envPath.toStdString().c_str();
//QTextCodec *code = QTextCodec::codecForName("UTF_8");
QString envPath = qgetenv("PATH"); //获取当前环境变量
//qDebug() << "envpath" << envPath;
//QMessageBox::warning(NULL, "nvpath",envPath);
QString appDirPath = QApplication::applicationDirPath(); //获取程序所在位置
//qDebug() << "appDirPath" << appDirPath;
if(appDirPath.contains(QRegularExpression("[\u4e00-\u9fa5]")))
{
//qDebug() << "-------------------" << appDirPath.contains(QRegularExpression("[\\x4e00-\\x9fa5]+"));
//qDebug() << "\\x4e00" ;
//qDebug() << "\\x9fa5" ;
QMessageBox::warning(NULL, "路径问题","请将程序置于纯英文路径下否则将无法正确设置ADB环境\n"
"您当前的路径为:\n"
+ appDirPath);
}
#ifdef Q_OS_WIN32
QString userPath = appDirPath + "\\Resources\\platform-tools"; //向字符串中添加ADB环境
#endif
#ifdef Q_OS_OSX
QString userPath = appDirPath + "\\platform-tools-OSX"; //向字符串中添加ADB环境
#endif
#ifdef Q_OS_LINUX
QString userPath = appDirPath + "\\platform-tools-linux"; //向字符串中添加ADB环境
#endif
//QString userPath = appDirPath + "\\platform-tools"; //向字符串中添加ADB环境
//qDebug() << "userPath" << userPath;
//QMessageBox::warning(NULL, "userPath",userPath);
envPath += QDir::toNativeSeparators(userPath).prepend(';');
//qDebug() << "envPath" << envPath;
//QMessageBox::warning(NULL, "envPath",envPath);
qputenv("PATH",envPath.toStdString().c_str()); //更改环境变量
}
void MainWindow::refreshDevList() //方法:刷新设备列表
{
ui->comboBox->clear();
//ui->comboBox->clear();
/*DEBUG*/
bool changed = false; //这个是判断列表有没有变化用的
//qDebug() << "******************一次调用*********************";
//qDebug() << "refreshDevList devList is empty? " << devList.isEmpty() << QTime::currentTime();
//qDebug() << "devList.size()" << devList.size();
/*
for(int i = 0; i < devList.size();i++)
{
//qDebug() << "devList[" << i << "] is :" << devList[i].addr;
}
*/
/*DEBUG_END*/
//qDebug() << "shit 0";
bool devList_is_empty = devList.isEmpty();
QList<device> tmpList; //暂时的list存储刷新前的devlist用来与之后的devlist对比以确认设备是否有改变
/*给tmpList赋值*/
if(!devList_is_empty)
{
for(int i = 0; i < devList.size();i++)
{
//Debug() << "shit 3.1";
device dev;
dev.device_debug = devList[i].device_debug;
dev.device_product = devList[i].device_product;
dev.addr = devList[i].addr;
dev.model = devList[i].model;
dev.state = devList[i].state;
dev.transport_id = devList[i].transport_id;
tmpList.append(dev);
}
}
//qDebug() << "tmpList.size()" << tmpList.size();
//ui->comboBox->clear();
devList.clear(); //清空设备列表
devList = explainer->getDevList_windows(process->run("adb devices -l")); //重新赋值
qDebug() << "Bug#01 finding!";
devList.append(explainer->getDevList_windows(process->run("adb devices -l"))); //重新赋值
//devList = explainer->getDevList_windows(process->run("adb devices -l")); //重新赋值
qDebug() << "Bug#01 found!";
//qDebug() << "devList after explain:" << devList.isEmpty();
/*
qDebug() << "shit 1";
for(int i = 0; i < tmpList.size();i++)
{
qDebug() << "shit 2";
qDebug() << "tmpList[" << i << "] is :" << devList[i].addr;
}
for(int i = 0; i < devList.size();i++)
{
qDebug() << "shit 3";
qDebug() << "devList new[" << i << "] is :" << devList[i].addr;
}
qDebug() << "shit finish";*/
/*判断列表内容是否变化,若变化则发送 adbDeviceChanged 信号*/
if(!devList_is_empty)
{
if(devList.size() == tmpList.size())
{
for(int i = 0; i < devList.size() && i < tmpList.size() ; i++)
{
if(devList[i].addr != tmpList[i].addr)
{
emit adbDeviceChanged();
changed = true;
break;
}
}
}
else
{
emit adbDeviceChanged();
changed = true;
}
}
else if(!devList.isEmpty() && tmpList.isEmpty())
{
emit adbDeviceChanged();
changed = true;
}
else if(devList.isEmpty() && !tmpList.isEmpty())
{
emit adbDeviceChanged();
changed = true;
}
else
{
//qDebug() << "else:" << devList.isEmpty() << tmpList.isEmpty() << devList_is_empty;
}
QList<int> off; //未响应设备索引
/*将设备信息传入 List l 并将l的值显示在combobox中*/
QStringList l;
l.clear();
/*一条一条添加*/
for (int i = 0 ; i < devList.size() ; i++ )
{
QString devItem =devList[i].state + " " + explainer->get_words_after(devList[i].device_product, ":") + " " + explainer->get_words_after(devList[i].model, ":");
/*原来的*/
QString devItem = devList[i].state + " " + explainer->get_words_after(devList[i].model, ":") + " " + devList[i].addr;
l.append(devItem);
//qDebug() << "l[" << i << "] = " << l[i];
if(devList[i].state == "[未响应]")
{
off.append(i);
/*
QVariant v(0);
ui->comboBox->setItemData(i, v, Qt::UserRole - 1);
*/
}
/*原来的END*/
/*新的*/
if(changed) //changed为true则设备列表有所变化此时才更新
{
//qDebug() <<"changed so clear";
disconnect(this->ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(setCurrentDevice(int))); //取消连接
ui->comboBox->clear();
view->setUpList(devList, off);
qDebug() << "1";
connect(this->ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(setCurrentDevice(int))); //重新连接
}
/*新的END*/
}
ui->comboBox->addItems(l);
/*出意外弄回来
if(changed) //changed为true则设备列表有所变化此时才更新
{
//qDebug() <<"changed so clear";
ui->comboBox->clear();
ui->comboBox->addItems(l);
}*/
if(!liangYi) //
{
disconnect(this->ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(setCurrentDevice(int))); //取消连接
ui->comboBox->clear();
view->setUpList(devList, off);
connect(this->ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(setCurrentDevice(int))); //重新连接
}
liangYi = false;
/*将离线设备设为不可选*/
for(int i = 0; i < off.count();i++)
{
QVariant v(0);
ui->comboBox->setItemData(off[i], v, Qt::UserRole - 1);
}
/*若没有设备,重置*/
if(devList.isEmpty())
{
current_device = -1; //重设当前设备
ui->dynamic_island->setText("请先选择设备");
ui->dynamic_island->setStyleSheet("background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;");
}
else
{
current_device = 0;
ui->dynamic_island->setText(devList[current_device].addr);
qDebug()<<"devList[current_device].state="<<devList[current_device].state;
if(devList[current_device].state=="[未授权]")
{
ui->dynamic_island->setStyleSheet("background-color:rgba(237,90,101,1);border-radius:4px;border:0px;");
//this->update();
//rgba(237,90,101,0.6)
}
else
{
ui->dynamic_island->setStyleSheet("background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;");
}
}
liangYi = false; //重置两仪
//qDebug() << "******************一次调用结束*********************";
}
void MainWindow::on_refreshButton_clicked() //槽:按下刷新按钮
{
if(thread_mon != NULL)
{
//siXiangTimer->stop();
siXiangTimer->deleteLater();
siXiangTimer = NULL;
//qDebug() <<"thread_mon != NULL";
//qDebug() <<"disconnect";
thread_mon->disconnect();
//qDebug() <<"exit()";
thread_mon->quit();
//qDebug() <<"deleteLater()";
//thread_mon->deleteLater();
}
refreshDevList();
lock();
@ -111,13 +347,88 @@ void MainWindow::on_refreshButton_clicked() //槽:按下刷新按钮
}*/
initBasePage(6);
qDebug() <<"8";
reset_monitorBars();
resetMonitorThread(ui->comboBox->currentIndex());
}
void MainWindow::resetMonitorThread(int index)
{
if(thread_mon != NULL && siXiangTimer != NULL)
{
//qDebug() <<"stop";
//siXiangTimer->stop();
//qDebug() <<"delete";
siXiangTimer->deleteLater();
//qDebug() <<"=NULL";
siXiangTimer = NULL;
//qDebug() <<"thread_mon != NULL";
//qDebug() <<"disconnect";
thread_mon->disconnect();
//qDebug() <<"exit()";
thread_mon->quit();
//qDebug() <<"deleteLater()";
thread_mon->deleteLater();
}
//ui->widget_height->layout()->addWidget(ui->comboBox.it)
if(index >= 0)
{
//qDebug() <<"NEW";
siXiangTimer = new QTimer();
thread_mon = new thread_monitor(devList[current_device]);
//qDebug() <<"devList[current_device]:" << "current_device=" << current_device << "dev:" << devList[current_device].addr;
//qDebug() <<"CONNECT";
connect(siXiangTimer,SIGNAL(timeout()),thread_mon,SLOT(getInfo()));
connect(thread_mon,SIGNAL(signal_monitor(float,float)),this,SLOT(slot_update_monitor(float,float)));
//qDebug() <<"START";
thread_mon->start();
siXiangTimer->start(2000);
ui->progressBar_CPU->setRange(0,100);
ui->progressBar_RAM->setRange(0,100);
}
}
void MainWindow::setCurrentDevice(int index) //槽:改变所选设备
{
//qDebug() <<"MainWindow:if" << "index = " << index;
if(thread_mon != NULL && siXiangTimer != NULL)
{
//qDebug() <<"stop";
//siXiangTimer->stop();
//qDebug() <<"delete";
siXiangTimer->deleteLater();
//qDebug() <<"=NULL";
siXiangTimer = NULL;
//qDebug() <<"thread_mon != NULL";
//qDebug() <<"disconnect";
thread_mon->disconnect();
//qDebug() <<"exit()";
thread_mon->quit();
//qDebug() <<"deleteLater()";
thread_mon->deleteLater();
}
//ui->widget_height->layout()->addWidget(ui->comboBox.it)
if(index >= 0)
{
//qDebug() <<"NEW";
siXiangTimer = new QTimer();
thread_mon = new thread_monitor(devList[current_device]);
//qDebug() <<"devList[current_device]:" << "current_device=" << current_device << "dev:" << devList[current_device].addr;
//qDebug() <<"CONNECT";
connect(siXiangTimer,SIGNAL(timeout()),thread_mon,SLOT(getInfo()));
connect(thread_mon,SIGNAL(signal_monitor(float,float)),this,SLOT(slot_update_monitor(float,float)));
//qDebug() <<"START";
thread_mon->start();
siXiangTimer->start(2000);
ui->progressBar_CPU->setRange(0,100);
ui->progressBar_RAM->setRange(0,100);
if(currentPage != NULL)
{
@ -130,17 +441,24 @@ void MainWindow::setCurrentDevice(int index) //槽:改变所选设备
current_device = index;
//initBasePage(0);
/*
if(devList[current_device].state == "[侧载]")
{
initBasePage(5);
}*/
if(ui->indexList->currentRow() == 0)
{
qDebug() << "initBasePage";
//qDebug() << "initBasePage";
initBasePage(0);
}
else
{
qDebug() << "setCurrentRow";
//qDebug() << "setCurrentRow";
ui->indexList->setCurrentRow(0);
}
ui->dynamic_island->setText(explainer->get_words_after(devList[current_device].model,":"));
}
unlock();
}
@ -149,18 +467,34 @@ void MainWindow::initBasePage(int key) //槽生成basePages
{
while(key != -1)
{
this->setEnabled(false);
//this->setEnabled(false);
this->lock();
if(currentPage != NULL) //销毁上一个basePage
{
//currentPage->playExitAnimation();
//qDebug() << "deleting currentPage";
delete currentPage;
//currentPage->~basePage();
//qDebug() << "delete currentPage";
//currentPage->~basePage();
currentPage = NULL;
}
/*动画*/
//ui->indexList[key]
/**/
currentPage = new basePage(this);
//qDebug() << "height in initBasePage()" << ui->widget_height->height();
currentPage->wgtHeight = ui->widget_height->height();
//qDebug() << "height2 in initBasePage()" << currentPage->wgtHeight;
connect(currentPage,SIGNAL(animationEnd()),this,SLOT(slot_taiChi()));
if(devList.isEmpty())
{
device * noDevice = new device;
@ -174,10 +508,14 @@ void MainWindow::initBasePage(int key) //槽生成basePages
ui->verticalLayout_2->addWidget(currentPage);
currentPage->playLoadAnimation();
//currentPage->repaint();
currentPage->playLoadAnimation(ui->widget_height->height());
//currentPage->playExitAnimation();
//currentPage->setVisible(true);
taiChiTimer = new QTimer(this);
connect(taiChiTimer, SIGNAL(timeout()), this, SLOT(slot_taiChi()));
taiChiTimer->setSingleShot(true);
taiChiTimer->start(700);
this->setEnabled(true);
break;
}
}
@ -206,7 +544,7 @@ void MainWindow::addIndexItems() //方法初始化向index
addItemToIndex(activator);
indexListItem *apps = new indexListItem(this->ui->indexList);
apps->setText("应用");
apps->setText("软件包管理器");
apps->setPic("image:url(:/ico/image/ico/google-play-line.svg);background-color:rgba(255,255,255,0);");
addItemToIndex(apps);
@ -222,7 +560,7 @@ void MainWindow::addIndexItems() //方法初始化向index
//:/ico/image/ico/code-s-slash-line.svg //05
indexListItem *advanced = new indexListItem(this->ui->indexList);
advanced->setText("高级");
advanced->setText("其它");
advanced->setPic("image:url(:/ico/image/ico/code-s-slash-line.svg);background-color:rgba(255,255,255,0);");
addItemToIndex(advanced);
@ -270,18 +608,19 @@ void MainWindow::setStyles() //方法:设置样式
"QListView::item{height:35px;}"
);
ui->comboBox->setStyleSheet("QComboBox{color:black;border-bottom:1px solid #BDBDBD;border-radius:0px;background-color:transparent;}"
"QComboBox::drop-down{border: 0px solid rgba(255,255,255,0);background-color:rgba(255,255,255,0);border-bottom-right-radius: 0px;}"
"QComboBox QAbstractItemView{border:1px solid #BDBDBD;border-radius:0px 0px 0px 0px;outline: 0px;}"
"QComboBox QAbstractItemView::item{height:30px;border:0px solid #BDBDBD;border-radius:0px 0px 0px 0px;}"
"QComboBox QAbstractItemView::item:hover{height:30px;border:0px solid #BDBDBD;border-radius:0px 0px 0px 0px;color:black}"
"QComboBox QAbstractItemView::item:selected{height:30px;border:1px solid #BDBDBD;border-radius:0px 0px 0px 0px;color:black}"
ui->comboBox->setStyleSheet("QComboBox{color:black; border:0px solid #BDBDBD; border-radius:4px; background-color:rgba(255,255,255,0.9);image:url(:/ico/image/ico/devices.svg);background-color:rgba(255,255,255,0.9);}"
"QComboBox::drop-down{border: 0px solid rgba(255,255,255,0);background-color:rgba(255,255,255,0);border-radius: 8px;}"
"QComboBox QAbstractItemView{border:1px solid #BDBDBD;border-radius:0px 0px 0px 0px;outline: 0px;background-color:rgba(255,255,255,0);}"
"QComboBox QAbstractItemView::item{height:300px;border:0px solid #BDBDBD;border-radius:0px 0px 0px 0px;background-color:rgba(255,255,255,255);}"//height:30px;
"QComboBox QAbstractItemView::item:hover{height:300px;border:0px solid #BDBDBD;border-radius:0px 0px 0px 0px;color:black;background-color:rgba(255,255,255,255);}"
"QComboBox QAbstractItemView::item:selected{height:300px;border:0px solid #BDBDBD;border-radius:0px 0px 0px 0px;color:black;background-color:rgba(255,255,255,255);}"
);
/*
ui->refreshButton->setStyleSheet("QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;}"
"QPushButton:hover{background-color:rgba(255,255,255,0.7);}"
"QPushButton:pressed{background-color:rgba(255,255,255,0.6);}");
ui->iconLabel->setStyleSheet("background-color:transparent;");
"QPushButton:pressed{background-color:rgba(255,255,255,0.6);}");*/
//ui->iconLabel->setStyleSheet("background-color:transparent;");
ui->fakeSpacer->setStyleSheet("background-color:transparent;");
QGraphicsDropShadowEffect *shadowEffect_refreshButton = new QGraphicsDropShadowEffect(this);
@ -304,10 +643,51 @@ void MainWindow::setStyles() //方法:设置样式
shadowEffect_WSABtn->setColor(Qt::gray);
shadowEffect_WSABtn->setBlurRadius(5);
QGraphicsDropShadowEffect *shadowEffect_cmdBtn = new QGraphicsDropShadowEffect(this);
shadowEffect_cmdBtn->setOffset(0,0);
shadowEffect_cmdBtn->setColor(Qt::gray);
shadowEffect_cmdBtn->setBlurRadius(5);
QGraphicsDropShadowEffect *shadowEffect_island = new QGraphicsDropShadowEffect(this);
shadowEffect_island->setOffset(0,0);
shadowEffect_island->setColor(Qt::gray);
shadowEffect_island->setBlurRadius(5);
QGraphicsDropShadowEffect *shadowEffect_pluginBtn = new QGraphicsDropShadowEffect(this);
shadowEffect_pluginBtn->setOffset(0,0);
shadowEffect_pluginBtn->setColor(Qt::gray);
shadowEffect_pluginBtn->setBlurRadius(5);
QGraphicsDropShadowEffect *shadowEffect_combo = new QGraphicsDropShadowEffect(this);
shadowEffect_combo->setOffset(0,0);
shadowEffect_combo->setColor(Qt::gray);
shadowEffect_combo->setBlurRadius(5);
QGraphicsDropShadowEffect *shadowEffect_CPU = new QGraphicsDropShadowEffect(this);
shadowEffect_CPU->setOffset(0,0);
shadowEffect_CPU->setColor(Qt::gray);
shadowEffect_CPU->setBlurRadius(5);
QGraphicsDropShadowEffect *shadowEffect_RAM = new QGraphicsDropShadowEffect(this);
shadowEffect_RAM->setOffset(0,0);
shadowEffect_RAM->setColor(Qt::gray);
shadowEffect_RAM->setBlurRadius(5);
ui->refreshButton->setGraphicsEffect(shadowEffect_refreshButton);
ui->adbKillerBtn->setGraphicsEffect(shadowEffect_killAdbBtn);
ui->WIFIBtn->setGraphicsEffect(shadowEffect_testBtn);
ui->WSABtn->setGraphicsEffect(shadowEffect_WSABtn);
ui->cmdBtn->setGraphicsEffect(shadowEffect_cmdBtn);
ui->dynamic_island->setGraphicsEffect(shadowEffect_island);
ui->comboBox->setGraphicsEffect(shadowEffect_combo);
ui->widget_mon_CPU->setGraphicsEffect(shadowEffect_CPU);
ui->widget_mon_RAM->setGraphicsEffect(shadowEffect_RAM);
ui->pluginBtn->setGraphicsEffect(shadowEffect_pluginBtn);
ui->comboBox->setMaxVisibleItems(1);
ui->comboBox->view()->window()->setWindowFlags(Qt::Popup | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint);
ui->comboBox->view()->window()->setAttribute(Qt::WA_TranslucentBackground);
QApplication::setEffectEnabled(Qt::UI_AnimateCombo, false);
}
void MainWindow::initSonPage(int key) //槽:生成子页面
@ -433,7 +813,7 @@ void MainWindow::on_WIFIBtn_clicked() //槽:弹出无线调试
connect(getInfoBtn,SIGNAL(clicked()),this,SLOT(connectWIFIDev()));
getInfo->show();
qDebug() << "size is " << getInfo->geometry();
//qDebug() << "size is " << getInfo->geometry();
}
void MainWindow::connectWIFIDev() //槽:连接无线调试设备
@ -463,8 +843,188 @@ void MainWindow::on_WSABtn_clicked() //槽连接WSA
QMessageBox * msgBox = new QMessageBox;
msgBox->setWindowIcon(QIcon(":/ico/image/ico/link.svg"));
msgBox->setStyleSheet("background-color:rgba(255,255,255,1);border:0px; border-radius:0px;");
msgBox->setWindowTitle("无线调试");
msgBox->setText("· 已尝试连接请刷新设备列表并选择WSA");
msgBox->setWindowTitle("WSA");
msgBox->setText("· 已尝试连接请刷新设备列表并选择WSA\n· 请谨慎对WSA使用某些功能");
msgBox->addButton("", QMessageBox::AcceptRole);
msgBox->show();
}
void MainWindow::slot_taiChi()
{
//qDebug() <<"taiChi -" << taiChi;
/*
if(taiChi)
{
this->resize(this->geometry().width() + 5,this->geometry().height());
}
else
{
this->resize(this->geometry().width() - 5,this->geometry().height());
}*/
taiChi = !taiChi;
//currentPage->resize(1,1);
delete taiChiTimer;
taiChiTimer = NULL;
if(ui->comboBox->currentIndex() != -1)
{
this->unlock();
//currentPage->setDisabled(false);
}
//this->setEnabled(true);
}
void MainWindow::on_cmdBtn_clicked()
{
QString appDirPath = QApplication::applicationDirPath();
QString batPath = appDirPath + "/Resources/platform-tools/open-cmd-here.bat";
//qDebug()<<"batPath = " << batPath;
QProcess batProcess;
batProcess.start(batPath);
batProcess.waitForFinished();
}
void MainWindow::DevicePlugIn()
{
qDebug() << "DevicePlugIn";
}
void MainWindow::DevicePlugOut()
{
qDebug() << "DevicePlugout";
}
void MainWindow::DeviceChanged()
{
if(firstBoot == true)
{
firstBoot = false;
}
else
{
QMessageBox::StandardButton result=QMessageBox::warning(NULL, "检测到USB热插拔","您可能插入或拔出了一台ADB设备\n"
"将对设备列表进行刷新\n"
"(⚠️这会中断当前正在执行的任务)");
//msgBox->setStyleSheet("background-color:rgba(255,255,255,1);border:0px; border-radius:0px;");
//QMessageBox::StandardButton result=QMessageBox::warning(this, "Title","text");
//qDebug() << "result =" << result;
if(result)
{
//这里要delete adbprocess
on_refreshButton_clicked();
}
else
{
}
//qDebug() << "DeviceChanged";
}
}
void MainWindow::slot_refreshDevList()
{
//qDebug() << "slot_refreshDevList";
liangYi = true;
refreshDevList();
}
void MainWindow::refreshDevListLater()
{
qDebug() << ">>>>>>>>>>>>>>>>>>>>>>refreshDevListLater";
QTimer *timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(slot_refreshDevList()));
timer->setSingleShot(true);
timer->start(1000);
//timer->deleteLater();
}
void MainWindow::slot_update_monitor(float cpu_useage, float mem_useage)
{
//qDebug() << "cpu_useage is " <<cpu_useage ;
//qDebug() << "mem_useage" << mem_useage;
int cpu_credit = (int)(cpu_useage*100);
//qDebug() << "cpu_credit" << cpu_credit;
ui->progressBar_CPU->setValue(cpu_credit);
int mem_credit = (int)(mem_useage*100);
//qDebug() << "mem_credit" << mem_credit;
ui->progressBar_RAM->setValue(mem_credit);
}
void MainWindow::reset_monitorBars()
{
//qDebug() << "reset";
ui->progressBar_CPU->setValue(0);
ui->progressBar_RAM->setValue(0);
}
void MainWindow::on_pluginBtn_clicked()
{
magiskSaver = new QWidget();
magiskSaver->setMaximumSize(500,300);
magiskSaver->setWindowTitle("Magisk救砖");
magiskSaver->setStyleSheet("background-color:rgba(255,255,255,1);");
magiskSaver->setWindowIcon(QIcon(":/ico/image/ico/magisk.png"));
//magiskSaver->setWindowIconText("test");
QLabel * title = new QLabel(magiskSaver);
title->setText("在开机前禁用所有 Magisk 模块");
QWidget *saveWgt = new QWidget(magiskSaver);
saveWgt->setStyleSheet("border-radius: 4px;border:1px solid #BDBDBD;");
QVBoxLayout * saveLayout = new QVBoxLayout();
QLabel * profile = new QLabel(magiskSaver);
profile->setText("请按照以下步骤操作");
profile->setStyleSheet("border-radius: 4px;border-bottom:1px solid #BDBDBD;");
QLabel * step1 = new QLabel(magiskSaver);
step1->setText("1. 断开所有设备的连接,将不断重启的手机关机,或等待它的下一次重启。");
step1->setStyleSheet("border-radius: 4px;border:0px solid #BDBDBD;");
step1->setWordWrap(true);
QLabel * step2 = new QLabel(magiskSaver);
step2->setText("2. 点按救砖按钮。(接下来您无需再对电脑进行操作)");
step2->setStyleSheet("border-radius: 4px;border:0px solid #BDBDBD;");
step2->setWordWrap(true);
QLabel * step3 = new QLabel(magiskSaver);
step3->setText("3. 将手机开机,尽量在开机进入第一屏时连接数据线。");
step3->setStyleSheet("border-radius: 4px;border:0px solid #BDBDBD;");
step3->setWordWrap(true);
QPushButton * saveBtn = new QPushButton(magiskSaver);
saveBtn->setText("");
saveBtn->setCheckable(false);
saveBtn->setIcon(QIcon(":/ico/image/ico/play-line.svg"));
saveBtn->setStyleSheet("QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}QPushButton:hover{background-color:rgba(255,255,255,0.7);}QPushButton:pressed{background-color:rgba(255,255,255,0.6);}");
QVBoxLayout * mainLayout = new QVBoxLayout(magiskSaver);
QGraphicsDropShadowEffect *shadowEffect_getInfoBtn = new QGraphicsDropShadowEffect(magiskSaver);
shadowEffect_getInfoBtn->setOffset(0,0);
shadowEffect_getInfoBtn->setColor(Qt::gray);
shadowEffect_getInfoBtn->setBlurRadius(5);
saveBtn->setGraphicsEffect(shadowEffect_getInfoBtn);
magiskSaver->setLayout(mainLayout);
mainLayout->addWidget(title);
mainLayout->addWidget(saveWgt);
saveWgt->setLayout(saveLayout);
saveLayout->addWidget(profile);
saveLayout->addWidget(step1);
saveLayout->addWidget(step2);
saveLayout->addWidget(step3);
mainLayout->addWidget(saveBtn);
connect(saveBtn,SIGNAL(clicked()),this,SLOT(slot_save_magisk()));
magiskSaver->show();
}
void MainWindow::slot_save_magisk()
{
qDebug() << "magisk救砖输出" << process->run("adb wait-for-device shell magisk --remove-modules");
}

View File

@ -8,13 +8,19 @@
#include <QSizePolicy>
#include <QScroller>
#include <QLineEdit>
#include <QMouseEvent>
#include <QTextCodec>
#include <QRegExp>
#include "adbprocess.h"
#include "textexplainer.h"
#include "indexlistitem.h"
#include "basepage.h"
#include "pagemaker.h"
#include "threads/thread_createpage.h"
#include "about.h"
#include "usb_listener.h"
#include "threads/thread_monitor.h"
#include "devitem.h"
#include "abstract/comboboxlistwidget.h"
#include <QCoreApplication>
#include <QStringList>
@ -32,6 +38,7 @@ class MainWindow : public QMainWindow
{
Q_OBJECT
signals:
void adbDeviceChanged();
public:
MainWindow(QWidget *parent = nullptr);
@ -42,13 +49,13 @@ public:
pageMaker *maker;
QWidget * getInfo;
QWidget * magiskSaver;
QLineEdit * le_outIp;
QLineEdit * le_outPort;
QLineEdit * le_ipAddr;
QLineEdit * le_port;
QLineEdit * le_code;
int current_device;
QList<device> devList;
indexListItem listItems[10];
@ -69,6 +76,13 @@ private slots:
void connectWIFIDev();
void on_WSABtn_clicked();
void slot_taiChi();
void on_cmdBtn_clicked();
void on_pluginBtn_clicked();
void slot_save_magisk();
private:
Ui::MainWindow *ui;
@ -77,9 +91,38 @@ private:
void addIndexItems();
void setStyles();
void resetMonitorThread(int);
bool taiChi = true; //界面锁定定时器
bool liangYi = false; //判断刷新按钮槽函数是被谁调用false刷新按钮 click调用 true 热插拔相关
bool bagua = true; //忘了是干啥的了
//布尔 太极 为 真;
bool firstBoot = true;
QTimer *taiChiTimer;
QTimer *baguaTimer;
QTimer *siXiangTimer = NULL;
basePage * currentPage;
animationWidget * tmpPage;
about * WCMPage2;
usb_listener *listener;
thread_monitor *thread_mon = NULL;
comboboxListWidget *view;
basePage *plugin;
public slots:
void DevicePlugIn();
void DevicePlugOut();
void DeviceChanged();
void slot_refreshDevList(); //如下
void refreshDevListLater(); //与信号 usb_listener 连接的槽在设备热插拔后启动定时器超时1s后调用slot_refreshDevList();
void slot_update_monitor(float,float);
void reset_monitorBars();
};
#endif // MAINWINDOW_H

View File

@ -7,9 +7,14 @@
<x>0</x>
<y>0</y>
<width>954</width>
<height>567</height>
<height>562</height>
</rect>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
@ -18,136 +23,229 @@
/*background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(238, 154, 229, 255), stop:1 rgba(89, 97, 249, 255));*/</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget" native="true">
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>11</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout" stretch="2,0,10">
<item>
<widget class="QLabel" name="iconLabel">
<property name="minimumSize">
<size>
<width>250</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>250</width>
<height>100</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:36pt; color:#41cd52;&quot;&gt;Qt&lt;/span&gt;&lt;span style=&quot; font-size:36pt;&quot;&gt;ADB&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QComboBox" name="comboBox">
<property name="minimumSize">
<size>
<width>210</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>210</width>
<height>30</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="refreshButton">
<property name="minimumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;刷新设备列表&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/refresh-line.svg</normaloff>:/ico/image/ico/refresh-line.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="indexList">
<property name="minimumSize">
<size>
<width>250</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>250</width>
<height>16777215</height>
</size>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="fakeSpacer">
<widget class="QWidget" name="widget_left" native="true">
<property name="minimumSize">
<size>
<width>30</width>
<width>260</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<width>260</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgba(255,255,255,0);border-radius:0px;border:0px;</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0,10">
<property name="spacing">
<number>8</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>7</number>
</property>
<item>
<widget class="QComboBox" name="comboBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>28</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
</font>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="refreshButton">
<property name="minimumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>28</width>
<height>28</height>
</size>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;刷新设备列表&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/refresh-line.svg</normaloff>:/ico/image/ico/refresh-line.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="dynamic_island">
<property name="minimumSize">
<size>
<width>0</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>28</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;</string>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="maximumSize">
<size>
<width>14</width>
<height>14</height>
</size>
</property>
<property name="baseSize">
<size>
<width>14</width>
<height>14</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="indexList">
<property name="minimumSize">
<size>
<width>250</width>
<height>300</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>250</width>
<height>16777215</height>
</size>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QLabel" name="fakeSpacer">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>0</width>
<height>16777215</height>
</size>
</property>
@ -157,14 +255,17 @@
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,0,0">
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,0">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>9</number>
</property>
<property name="leftMargin">
<number>11</number>
</property>
<property name="topMargin">
<number>16</number>
<number>5</number>
</property>
<property name="rightMargin">
<number>16</number>
@ -186,6 +287,9 @@
<height>64</height>
</size>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string>无线调试</string>
</property>
@ -226,6 +330,9 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="toolTip">
<string>杀死ADB进程</string>
</property>
@ -270,7 +377,13 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</size>
</property>
<property name="font">
<font/>
<font>
<family>LXGW WenKai Lite</family>
<pointsize>10</pointsize>
</font>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
@ -290,20 +403,13 @@ WSA</string>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<widget class="QPushButton" name="cmdBtn">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>64</horstretch>
<verstretch>64</verstretch>
</sizepolicy>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="loadingLabel">
<property name="minimumSize">
<size>
<width>64</width>
@ -316,47 +422,423 @@ WSA</string>
<height>64</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="styleSheet">
<string notr="true"/>
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/terminal-box-line.svg</normaloff>:/ico/image/ico/terminal-box-line.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>25</width>
<height>25</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pluginBtn">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>64</horstretch>
<verstretch>64</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="font">
<font/>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
QPushButton:hover{background-color:rgba(255,255,255,0.7);}
QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="ico.qrc">
<normaloff>:/ico/image/ico/magisk.png</normaloff>:/ico/image/ico/magisk.png</iconset>
</property>
<property name="iconSize">
<size>
<width>25</width>
<height>25</height>
</size>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>8</number>
</property>
<item>
<widget class="QWidget" name="widget_mon_CPU" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_CPU">
<property name="minimumSize">
<size>
<width>30</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>20</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255, 0);border:0px;</string>
</property>
<property name="text">
<string>CPU</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="progressBar_CPU">
<property name="minimumSize">
<size>
<width>0</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>28</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>9</pointsize>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QProgressBar{
font:9pt;
border-radius:4px;
text-align:center;
/*border:1px solid #E8EDF2;*/
border:0px solid #E8EDF2;
background-color: rgba(255, 255, 255, 0);
}
QProgressBar:chunk{
border-radius:4px;
background-color:qlineargradient(x1:0,y1:1,x1:1,y1:0,stop:0 #38ef7d, stop:1 #11998e);
}
</string>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_mon_RAM" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>28</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_RAM">
<property name="minimumSize">
<size>
<width>30</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>30</width>
<height>20</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255, 0);border:0px;</string>
</property>
<property name="text">
<string>RAM</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="progressBar_RAM">
<property name="minimumSize">
<size>
<width>0</width>
<height>28</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>28</height>
</size>
</property>
<property name="font">
<font>
<family>LXGW WenKai Lite</family>
<pointsize>9</pointsize>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QProgressBar{
font:9pt;
border-radius:4px;
text-align:center;
/*border:1px solid #E8EDF2;*/
border:0px solid #E8EDF2;
background-color: rgba(255, 255, 255, 0);
}
QProgressBar:chunk{
border-radius:4px;
background-color:qlineargradient(x1:0,y1:1,x1:1,y1:0,stop:0 #38ef7d, stop:1 #11998e);
}
</string>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QWidget" name="page" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="maximumSize">
<size>
<width>0</width>
<height>0</height>
</size>
<property name="leftMargin">
<number>0</number>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgb(85, 255, 127)</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QWidget" name="page" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>114514</width>
<height>0</height>
</size>
</property>
<property name="baseSize">
<size>
<width>-16558</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color:rgb(85, 255, 127)</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QWidget" name="widget_height" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>391</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</item>

14
QtAdb/monitor.cpp Normal file
View File

@ -0,0 +1,14 @@
#include "monitor.h"
#include "ui_monitor.h"
monitor::monitor(QWidget *parent) :
QWidget(parent),
ui(new Ui::monitor)
{
ui->setupUi(this);
}
monitor::~monitor()
{
delete ui;
}

22
QtAdb/monitor.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef MONITOR_H
#define MONITOR_H
#include <QWidget>
namespace Ui {
class monitor;
}
class monitor : public QWidget
{
Q_OBJECT
public:
explicit monitor(QWidget *parent = nullptr);
~monitor();
private:
Ui::monitor *ui;
};
#endif // MONITOR_H

137
QtAdb/monitor.ui Normal file
View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>monitor</class>
<widget class="QWidget" name="monitor">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>574</width>
<height>85</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>3</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>3</number>
</property>
<item>
<widget class="QLabel" name="label_CPU">
<property name="font">
<font>
<family>MiSans Medium</family>
</font>
</property>
<property name="text">
<string>CPU</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_RAM">
<property name="font">
<font>
<family>MiSans Medium</family>
</font>
</property>
<property name="text">
<string>RAM</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>3</number>
</property>
<item>
<widget class="QProgressBar" name="progressBar_CPU">
<property name="font">
<font>
<family>MiSans Medium</family>
<pointsize>9</pointsize>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QProgressBar{
font:9pt;
border-radius:0px;
text-align:center;
/*border:1px solid #E8EDF2;*/
border:0px solid #E8EDF2;
background-color: rgba(255,255,255,0.8);
}
QProgressBar:chunk{
border-radius:0px;
background-color:qlineargradient(x1:0,y1:1,x1:1,y1:0,stop:0 #11998e, stop:1 #38ef7d);
}
</string>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="progressBar_RAM">
<property name="font">
<font>
<family>MiSans Medium</family>
<pointsize>9</pointsize>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QProgressBar{
font:9pt;
border-radius:0px;
text-align:center;
/*border:1px solid #E8EDF2;*/
border:0px solid #E8EDF2;
background-color: rgba(255,255,255,0.8);
}
QProgressBar:chunk{
border-radius:0px;
background-color:qlineargradient(x1:0,y1:1,x1:1,y1:0,stop:0 #11998e, stop:1 #38ef7d);
}
</string>
</property>
<property name="value">
<number>50</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

Some files were not shown because too many files have changed in this diff Show More