From 37870f1033859b70f03cd3befa5c3d1846d2e6d3 Mon Sep 17 00:00:00 2001
From: shuaikangzhou <863909694@qq.com>
Date: Wed, 15 Nov 2023 20:54:27 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9UI?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/workspace.xml | 71 +++-
app/Ui/__init__.py | 3 +-
app/Ui/chat/chat.py | 2 +-
app/Ui/contact/contact.py | 2 +-
app/Ui/mainview.py | 13 +-
app/Ui/pc_decrypt/__init__.py | 0
app/Ui/pc_decrypt/decryptUi.py | 120 -------
app/Ui/pc_decrypt/decryptUi.ui | 221 ------------
.../Button_Contact.py | 0
.../MyComponents => components}/__init__.py | 0
.../MyComponents => components}/prompt_bar.py | 0
app/ui_pc/Icon.py | 18 +
app/ui_pc/__init__.py | 3 +
app/ui_pc/mainview.py | 117 +++++++
app/ui_pc/mainwindow.py | 149 ++++++++
app/ui_pc/mainwindow.ui | 242 +++++++++++++
app/ui_pc/tool/__init__.py | 3 +
app/ui_pc/tool/pc_decrypt/__init__.py | 3 +
app/ui_pc/tool/pc_decrypt/decryptUi.py | 164 +++++++++
app/ui_pc/tool/pc_decrypt/decryptUi.ui | 328 ++++++++++++++++++
.../tool}/pc_decrypt/pc_decrypt.py | 2 +-
app/ui_pc/tool/toolUI.py | 83 +++++
app/ui_pc/tool/toolUI.ui | 128 +++++++
app/ui_pc/tool/tool_window.py | 77 ++++
decrypt_window.py | 24 +-
main.py | 2 +-
26 files changed, 1403 insertions(+), 372 deletions(-)
delete mode 100644 app/Ui/pc_decrypt/__init__.py
delete mode 100644 app/Ui/pc_decrypt/decryptUi.py
delete mode 100644 app/Ui/pc_decrypt/decryptUi.ui
rename app/{Ui/MyComponents => components}/Button_Contact.py (100%)
rename app/{Ui/MyComponents => components}/__init__.py (100%)
rename app/{Ui/MyComponents => components}/prompt_bar.py (100%)
create mode 100644 app/ui_pc/Icon.py
create mode 100644 app/ui_pc/__init__.py
create mode 100644 app/ui_pc/mainview.py
create mode 100644 app/ui_pc/mainwindow.py
create mode 100644 app/ui_pc/mainwindow.ui
create mode 100644 app/ui_pc/tool/__init__.py
create mode 100644 app/ui_pc/tool/pc_decrypt/__init__.py
create mode 100644 app/ui_pc/tool/pc_decrypt/decryptUi.py
create mode 100644 app/ui_pc/tool/pc_decrypt/decryptUi.ui
rename app/{Ui => ui_pc/tool}/pc_decrypt/pc_decrypt.py (99%)
create mode 100644 app/ui_pc/tool/toolUI.py
create mode 100644 app/ui_pc/tool/toolUI.ui
create mode 100644 app/ui_pc/tool/tool_window.py
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index bc75c5a..46102d6 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,10 +4,25 @@
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -28,6 +43,11 @@
+
@@ -38,6 +58,29 @@
}
+
@@ -70,6 +113,8 @@
}
+
+
@@ -222,13 +267,6 @@
1672848140146
-
- 1675168912759
-
-
-
- 1675168912759
-
1675169020409
@@ -565,7 +603,14 @@
1699973865386
-
+
+ 1700046106844
+
+
+
+ 1700046106844
+
+
@@ -601,7 +646,6 @@
-
@@ -626,7 +670,8 @@
-
+
+
diff --git a/app/Ui/__init__.py b/app/Ui/__init__.py
index 380c558..730bbfa 100644
--- a/app/Ui/__init__.py
+++ b/app/Ui/__init__.py
@@ -13,6 +13,5 @@ from app.Ui import mainview
# 文件__init__.py
# from login import login
from app.Ui.decrypt import decrypt
-from app.Ui.pc_decrypt import pc_decrypt
-__all__ = ["decrypt", 'mainview', 'chat', 'pc_decrypt']
+__all__ = ["decrypt", 'mainview', 'chat']
diff --git a/app/Ui/chat/chat.py b/app/Ui/chat/chat.py
index 068a8ff..e913a63 100644
--- a/app/Ui/chat/chat.py
+++ b/app/Ui/chat/chat.py
@@ -17,7 +17,7 @@ from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
-from app.Ui.MyComponents.Button_Contact import ContactUi
+from app.components.Button_Contact import ContactUi
from app.log import logger, log
from .chatUi import *
from ...DataBase import data
diff --git a/app/Ui/contact/contact.py b/app/Ui/contact/contact.py
index 99556b7..aab92cb 100644
--- a/app/Ui/contact/contact.py
+++ b/app/Ui/contact/contact.py
@@ -13,7 +13,7 @@ from PyQt5 import QtCore
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
-import app.Ui.MyComponents.Button_Contact as MyLabel
+import app.components.Button_Contact as MyLabel
from app import person
from app.DataBase import data
from app.Ui.contact.contactInfo import ContactInfo
diff --git a/app/Ui/mainview.py b/app/Ui/mainview.py
index ce69bf6..16ddfff 100644
--- a/app/Ui/mainview.py
+++ b/app/Ui/mainview.py
@@ -11,13 +11,12 @@ from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
-from app import person, config
-from app.DataBase import *
+from app import config
from app.Ui import mainwindow
from app.Ui.Icon import Icon
-from app.Ui.MyComponents.prompt_bar import PromptBar
from app.Ui.chat import chat
from app.Ui.contact import contact
+from app.components.prompt_bar import PromptBar
class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
@@ -28,7 +27,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
super(MainWinController, self).__init__(parent)
self.setupUi(self)
self.setWindowIcon(Icon.MainWindow_Icon)
- self.Me = person.Me(data.get_myinfo())
+
self.setAttribute(Qt.WA_AttributeCount)
self.chatView = chat.ChatController(self.Me, parent=None)
@@ -60,12 +59,6 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
self.statusbar.setVisible(False)
self.prompt_bar = PromptBar(self)
self.chat_view()
- # self.state_lable = QLabel(self)
- # self.state_lable.raise_()
- # pixmap = QPixmap('./app/data/icons/default_avatar.svg').scaled(32, 32) # 按指定路径找到图片
- # self.state_lable.setPixmap(pixmap)
- # self.state_lable.setText("T")
- # 创建右键菜单函数
def init_ui(self):
# self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
diff --git a/app/Ui/pc_decrypt/__init__.py b/app/Ui/pc_decrypt/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/app/Ui/pc_decrypt/decryptUi.py b/app/Ui/pc_decrypt/decryptUi.py
deleted file mode 100644
index 57a8b66..0000000
--- a/app/Ui/pc_decrypt/decryptUi.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'decryptUi.ui'
-#
-# Created by: PyQt5 UI code generator 5.15.7
-#
-# WARNING: Any manual changes made to this file will be lost when pyuic5 is
-# run again. Do not edit this file unless you know what you are doing.
-
-
-from PyQt5 import QtCore, QtGui, QtWidgets
-
-
-class Ui_Dialog(object):
- def setupUi(self, Dialog):
- Dialog.setObjectName("Dialog")
- Dialog.resize(400, 300)
- font = QtGui.QFont()
- font.setFamily("微软雅黑")
- Dialog.setFont(font)
- self.label_3 = QtWidgets.QLabel(Dialog)
- self.label_3.setGeometry(QtCore.QRect(140, 0, 221, 51))
- font = QtGui.QFont()
- font.setFamily("一纸情书")
- font.setPointSize(20)
- self.label_3.setFont(font)
- self.label_3.setObjectName("label_3")
- self.progressBar = QtWidgets.QProgressBar(Dialog)
- self.progressBar.setGeometry(QtCore.QRect(90, 260, 271, 23))
- self.progressBar.setProperty("value", 50)
- self.progressBar.setObjectName("progressBar")
- self.btn_getinfo = QtWidgets.QPushButton(Dialog)
- self.btn_getinfo.setGeometry(QtCore.QRect(290, 60, 91, 41))
- self.btn_getinfo.setObjectName("btn_getinfo")
- self.btn_db_dir = QtWidgets.QPushButton(Dialog)
- self.btn_db_dir.setGeometry(QtCore.QRect(20, 210, 91, 41))
- self.btn_db_dir.setObjectName("btn_db_dir")
- self.label_db_dir = QtWidgets.QLabel(Dialog)
- self.label_db_dir.setGeometry(QtCore.QRect(120, 220, 251, 21))
- self.label_db_dir.setText("")
- self.label_db_dir.setObjectName("label_db_dir")
- self.label_ready = QtWidgets.QLabel(Dialog)
- self.label_ready.setGeometry(QtCore.QRect(40, 260, 41, 21))
- self.label_ready.setObjectName("label_ready")
- self.layoutWidget = QtWidgets.QWidget(Dialog)
- self.layoutWidget.setGeometry(QtCore.QRect(20, 50, 221, 151))
- self.layoutWidget.setObjectName("layoutWidget")
- self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
- self.gridLayout.setObjectName("gridLayout")
- self.label = QtWidgets.QLabel(self.layoutWidget)
- self.label.setObjectName("label")
- self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
- self.label_2 = QtWidgets.QLabel(self.layoutWidget)
- self.label_2.setObjectName("label_2")
- self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
- self.label_5 = QtWidgets.QLabel(self.layoutWidget)
- self.label_5.setObjectName("label_5")
- self.gridLayout.addWidget(self.label_5, 3, 0, 1, 1)
- self.label_4 = QtWidgets.QLabel(self.layoutWidget)
- self.label_4.setObjectName("label_4")
- self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1)
- self.label_key = QtWidgets.QLabel(self.layoutWidget)
- self.label_key.setText("")
- self.label_key.setObjectName("label_key")
- self.gridLayout.addWidget(self.label_key, 5, 1, 1, 1)
- self.label_phone = QtWidgets.QLabel(self.layoutWidget)
- self.label_phone.setText("")
- self.label_phone.setObjectName("label_phone")
- self.gridLayout.addWidget(self.label_phone, 2, 1, 1, 1)
- self.label_6 = QtWidgets.QLabel(self.layoutWidget)
- self.label_6.setObjectName("label_6")
- self.gridLayout.addWidget(self.label_6, 5, 0, 1, 1)
- self.label_pid = QtWidgets.QLabel(self.layoutWidget)
- self.label_pid.setText("")
- self.label_pid.setObjectName("label_pid")
- self.gridLayout.addWidget(self.label_pid, 0, 1, 1, 1)
- self.label_name = QtWidgets.QLabel(self.layoutWidget)
- self.label_name.setText("")
- self.label_name.setObjectName("label_name")
- self.gridLayout.addWidget(self.label_name, 3, 1, 1, 1)
- self.label_7 = QtWidgets.QLabel(self.layoutWidget)
- self.label_7.setObjectName("label_7")
- self.gridLayout.addWidget(self.label_7, 1, 0, 1, 1)
- self.label_version = QtWidgets.QLabel(self.layoutWidget)
- self.label_version.setText("")
- self.label_version.setObjectName("label_version")
- self.gridLayout.addWidget(self.label_version, 1, 1, 1, 1)
- self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget)
- self.lineEdit.setStyleSheet("background:transparent;border-width:0;border-style:outset")
- self.lineEdit.setFrame(False)
- self.lineEdit.setObjectName("lineEdit")
- self.gridLayout.addWidget(self.lineEdit, 4, 1, 1, 1)
- self.gridLayout.setColumnMinimumWidth(0, 1)
- self.gridLayout.setColumnMinimumWidth(1, 2)
- self.gridLayout.setRowMinimumHeight(5, 10)
- self.gridLayout.setColumnStretch(0, 1)
- self.gridLayout.setColumnStretch(1, 3)
- self.gridLayout.setRowStretch(5, 10)
- self.pushButton_3 = QtWidgets.QPushButton(Dialog)
- self.pushButton_3.setGeometry(QtCore.QRect(290, 130, 91, 41))
- self.pushButton_3.setObjectName("pushButton_3")
-
- self.retranslateUi(Dialog)
- QtCore.QMetaObject.connectSlotsByName(Dialog)
-
- def retranslateUi(self, Dialog):
- _translate = QtCore.QCoreApplication.translate
- Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
- self.label_3.setText(_translate("Dialog", "解密数据库"))
- self.btn_getinfo.setText(_translate("Dialog", "获取信息"))
- self.btn_db_dir.setText(_translate("Dialog", "设置微信路径"))
- self.label_ready.setText(_translate("Dialog", "未就绪"))
- self.label.setText(_translate("Dialog", "PID"))
- self.label_2.setText(_translate("Dialog", "手机号"))
- self.label_5.setText(_translate("Dialog", "微信昵称"))
- self.label_4.setText(_translate("Dialog", "wxid"))
- self.label_6.setText(_translate("Dialog", "密钥"))
- self.label_7.setText(_translate("Dialog", "版本"))
- self.pushButton_3.setText(_translate("Dialog", "开始解密"))
diff --git a/app/Ui/pc_decrypt/decryptUi.ui b/app/Ui/pc_decrypt/decryptUi.ui
deleted file mode 100644
index fe1b558..0000000
--- a/app/Ui/pc_decrypt/decryptUi.ui
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
- Dialog
-
-
-
- 0
- 0
- 400
- 300
-
-
-
-
- 微软雅黑
-
-
-
- Dialog
-
-
-
-
- 140
- 0
- 221
- 51
-
-
-
-
- 一纸情书
- 20
-
-
-
- 解密数据库
-
-
-
-
-
- 90
- 260
- 271
- 23
-
-
-
- 50
-
-
-
-
-
- 290
- 60
- 91
- 41
-
-
-
- 获取信息
-
-
-
-
-
- 20
- 210
- 91
- 41
-
-
-
- 设置微信路径
-
-
-
-
-
- 120
- 220
- 251
- 21
-
-
-
-
-
-
-
-
-
- 40
- 260
- 41
- 21
-
-
-
- 未就绪
-
-
-
-
-
- 20
- 50
- 221
- 151
-
-
-
- -
-
-
- PID
-
-
-
- -
-
-
- 手机号
-
-
-
- -
-
-
- 微信昵称
-
-
-
- -
-
-
- wxid
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- 密钥
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- 版本
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- background:transparent;border-width:0;border-style:outset
-
-
- false
-
-
-
-
-
-
-
-
- 290
- 130
- 91
- 41
-
-
-
- 开始解密
-
-
-
-
-
-
diff --git a/app/Ui/MyComponents/Button_Contact.py b/app/components/Button_Contact.py
similarity index 100%
rename from app/Ui/MyComponents/Button_Contact.py
rename to app/components/Button_Contact.py
diff --git a/app/Ui/MyComponents/__init__.py b/app/components/__init__.py
similarity index 100%
rename from app/Ui/MyComponents/__init__.py
rename to app/components/__init__.py
diff --git a/app/Ui/MyComponents/prompt_bar.py b/app/components/prompt_bar.py
similarity index 100%
rename from app/Ui/MyComponents/prompt_bar.py
rename to app/components/prompt_bar.py
diff --git a/app/ui_pc/Icon.py b/app/ui_pc/Icon.py
new file mode 100644
index 0000000..808fae3
--- /dev/null
+++ b/app/ui_pc/Icon.py
@@ -0,0 +1,18 @@
+from PyQt5.QtGui import QIcon
+
+
+class Icon:
+ Default_avatar_path = './app/data/icons/default_avatar.svg'
+ MainWindow_Icon = QIcon('./app/data/icons/logo.svg')
+ Default_avatar = QIcon(Default_avatar_path)
+ Output = QIcon('./app/data/icons/output.svg')
+ Back = QIcon('./app/data/icons/back.svg')
+ ToDocx = QIcon('app/data/icons/word.svg')
+ ToCSV = QIcon('app/data/icons/csv.svg')
+ ToHTML = QIcon('app/data/icons/html.svg')
+ Chat_Icon = QIcon('./app/data/icons/chat.svg')
+ Contact_Icon = QIcon('./app/data/icons/contact.svg')
+ MyInfo_Icon = QIcon('./app/data/icons/myinfo.svg')
+ Annual_Report_Icon = QIcon('./app/data/icons/annual_report.svg')
+ Analysis_Icon = QIcon('./app/data/icons/analysis.svg')
+ Emotion_Icon = QIcon('./app/data/icons/emotion.svg')
diff --git a/app/ui_pc/__init__.py b/app/ui_pc/__init__.py
new file mode 100644
index 0000000..5cbf985
--- /dev/null
+++ b/app/ui_pc/__init__.py
@@ -0,0 +1,3 @@
+from . import mainview
+
+__all__ = ['mainview']
diff --git a/app/ui_pc/mainview.py b/app/ui_pc/mainview.py
new file mode 100644
index 0000000..010c90e
--- /dev/null
+++ b/app/ui_pc/mainview.py
@@ -0,0 +1,117 @@
+# -*- coding: utf-8 -*-
+"""
+@File : mainview.py
+@Author : Shuaikang Zhou
+@Time : 2022/12/13 15:07
+@IDE : Pycharm
+@Version : Python3.10
+@comment : 主窗口
+"""
+from random import randint
+
+from PyQt5.QtCore import *
+from PyQt5.QtWidgets import *
+
+from app import config
+from app.Ui.Icon import Icon
+from . import mainwindow
+from .tool import ToolWindow
+
+# 美化样式表
+Stylesheet = """
+QPushButton {
+ background-color: rgb(240,240,240);
+ border:none;
+}
+QPushButton:hover{
+ background-color: rgb(209,209,209);
+}
+/*去掉item虚线边框*/
+QListWidget, QListView, QTreeWidget, QTreeView {
+ outline: 0px;
+}
+/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/
+QListWidget {
+ min-width: 120px;
+ max-width: 120px;
+ color: black;
+ background: white;
+ border:none;
+}
+QListWidget::item{
+ height:60;
+}
+/*被选中时的背景颜色和左边框颜色*/
+QListWidget::item:selected {
+ background: rgb(204, 204, 204);
+ border-left: 4px solid rgb(9, 187, 7);
+ color: black;
+ font-weight: bold;
+}
+/*鼠标悬停颜色*/
+HistoryPanel::item:hover {
+ background: rgb(52, 52, 52);
+}
+"""
+
+
+class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
+ exitSignal = pyqtSignal()
+
+ # username = ''
+ def __init__(self, username, parent=None):
+ super(MainWinController, self).__init__(parent)
+ self.setupUi(self)
+ self.setWindowIcon(Icon.MainWindow_Icon)
+ self.setStyleSheet(Stylesheet)
+ self.listWidget.clear()
+ # self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
+ self.action_desc.triggered.connect(self.about)
+ self.init_ui()
+
+ def init_ui(self):
+ self.listWidget.currentRowChanged.connect(self.setCurrentIndex)
+ chat_item = QListWidgetItem(Icon.Chat_Icon, '聊天', self.listWidget)
+ contact_item = QListWidgetItem(Icon.Contact_Icon, '好友', self.listWidget)
+ myinfo_item = QListWidgetItem(Icon.MyInfo_Icon, '我的', self.listWidget)
+ tool_item = QListWidgetItem(Icon.MyInfo_Icon, '工具', self.listWidget)
+ tool_window = ToolWindow()
+ label = QLabel('我是页面', self)
+ label.setAlignment(Qt.AlignCenter)
+ # 设置label的背景颜色(这里随机)
+ # 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色)
+ label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % (
+ randint(0, 255), randint(0, 255), randint(0, 255)))
+
+ self.stackedWidget.addWidget(label)
+ label = QLabel('我是页面', self)
+ label.setAlignment(Qt.AlignCenter)
+ # 设置label的背景颜色(这里随机)
+ # 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色)
+ label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % (
+ randint(0, 255), randint(0, 255), randint(0, 255)))
+ self.stackedWidget.addWidget(label)
+ label = QLabel('我是页面', self)
+ label.setAlignment(Qt.AlignCenter)
+ # 设置label的背景颜色(这里随机)
+ # 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色)
+ label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % (
+ randint(0, 255), randint(0, 255), randint(0, 255)))
+ self.stackedWidget.addWidget(label)
+ self.stackedWidget.addWidget(tool_window)
+ self.listWidget.setCurrentRow(3)
+ self.stackedWidget.setCurrentIndex(3)
+
+ def setCurrentIndex(self, row):
+ print(row)
+ self.stackedWidget.setCurrentIndex(row)
+
+ def about(self):
+ """
+ 关于
+ """
+ QMessageBox.about(self, "关于",
+ f"版本:{config.version}\n"
+ f"QQ交流群:{config.contact}\n"
+ "地址:https://github.com/LC044/WeChatMsg"
+ )
diff --git a/app/ui_pc/mainwindow.py b/app/ui_pc/mainwindow.py
new file mode 100644
index 0000000..9347ae1
--- /dev/null
+++ b/app/ui_pc/mainwindow.py
@@ -0,0 +1,149 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'mainwindow.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.7
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ MainWindow.setObjectName("MainWindow")
+ MainWindow.resize(1280, 779)
+ MainWindow.setStyleSheet("\n"
+ "/*去掉item虚线边框*/\n"
+ "QListWidget, QListView, QTreeWidget, QTreeView {\n"
+ " outline: 0px;\n"
+ "}\n"
+ "/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/\n"
+ "QListWidget {\n"
+ " min-width: 120px;\n"
+ " max-width: 120px;\n"
+ " color: black;\n"
+ " background: white;\n"
+ " border:none;\n"
+ "}\n"
+ "QListWidget::item{\n"
+ " height:80;\n"
+ "}\n"
+ "/*被选中时的背景颜色和左边框颜色*/\n"
+ "QListWidget::item:selected {\n"
+ " background: rgb(204, 204, 204);\n"
+ " border-left: 4px solid rgb(9, 187, 7);\n"
+ "}\n"
+ "/*鼠标悬停颜色*/\n"
+ "HistoryPanel::item:hover {\n"
+ " background: rgb(52, 52, 52);\n"
+ "}")
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
+ self.centralwidget.setObjectName("centralwidget")
+ self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
+ self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout.setSpacing(0)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.frame_info = QtWidgets.QFrame(self.centralwidget)
+ self.frame_info.setMinimumSize(QtCore.QSize(80, 500))
+ self.frame_info.setMaximumSize(QtCore.QSize(80, 16777215))
+ self.frame_info.setStyleSheet("background-color:rgb(240,240,240)")
+ self.frame_info.setFrameShape(QtWidgets.QFrame.NoFrame)
+ self.frame_info.setFrameShadow(QtWidgets.QFrame.Plain)
+ self.frame_info.setObjectName("frame_info")
+ self.myavatar = QtWidgets.QLabel(self.frame_info)
+ self.myavatar.setGeometry(QtCore.QRect(10, 40, 60, 60))
+ self.myavatar.setObjectName("myavatar")
+ self.listWidget = QtWidgets.QListWidget(self.frame_info)
+ self.listWidget.setGeometry(QtCore.QRect(0, 230, 120, 331))
+ self.listWidget.setObjectName("listWidget")
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ self.horizontalLayout.addWidget(self.frame_info)
+ self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
+ font = QtGui.QFont()
+ font.setFamily("微软雅黑")
+ font.setBold(False)
+ font.setWeight(50)
+ self.stackedWidget.setFont(font)
+ self.stackedWidget.setObjectName("stackedWidget")
+ self.horizontalLayout.addWidget(self.stackedWidget)
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.menubar = QtWidgets.QMenuBar(MainWindow)
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 23))
+ self.menubar.setObjectName("menubar")
+ self.menu_F = QtWidgets.QMenu(self.menubar)
+ self.menu_F.setObjectName("menu_F")
+ self.menu = QtWidgets.QMenu(self.menubar)
+ font = QtGui.QFont()
+ font.setFamily("微软雅黑")
+ self.menu.setFont(font)
+ self.menu.setObjectName("menu")
+ self.menu_2 = QtWidgets.QMenu(self.menubar)
+ self.menu_2.setObjectName("menu_2")
+ self.menu_about = QtWidgets.QMenu(self.menubar)
+ self.menu_about.setObjectName("menu_about")
+ MainWindow.setMenuBar(self.menubar)
+ self.statusbar = QtWidgets.QStatusBar(MainWindow)
+ self.statusbar.setObjectName("statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+ self.action_3 = QtWidgets.QAction(MainWindow)
+ self.action_3.setObjectName("action_3")
+ self.action_4 = QtWidgets.QAction(MainWindow)
+ self.action_4.setObjectName("action_4")
+ self.action = QtWidgets.QAction(MainWindow)
+ font = QtGui.QFont()
+ font.setFamily("Microsoft YaHei UI")
+ self.action.setFont(font)
+ self.action.setObjectName("action")
+ self.action_desc = QtWidgets.QAction(MainWindow)
+ self.action_desc.setObjectName("action_desc")
+ self.menu_F.addSeparator()
+ self.menu_F.addSeparator()
+ self.menu_F.addAction(self.action_3)
+ self.menu_F.addAction(self.action_4)
+ self.menu_2.addAction(self.action)
+ self.menu_about.addAction(self.action_desc)
+ self.menubar.addAction(self.menu_F.menuAction())
+ self.menubar.addAction(self.menu.menuAction())
+ self.menubar.addAction(self.menu_2.menuAction())
+ self.menubar.addAction(self.menu_about.menuAction())
+
+ self.retranslateUi(MainWindow)
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+ def retranslateUi(self, MainWindow):
+ _translate = QtCore.QCoreApplication.translate
+ MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
+ self.myavatar.setText(_translate("MainWindow", "avatar"))
+ __sortingEnabled = self.listWidget.isSortingEnabled()
+ self.listWidget.setSortingEnabled(False)
+ item = self.listWidget.item(0)
+ item.setText(_translate("MainWindow", "新建项目"))
+ item = self.listWidget.item(1)
+ item.setText(_translate("MainWindow", "新建项目"))
+ item = self.listWidget.item(2)
+ item.setText(_translate("MainWindow", "新建项目"))
+ item = self.listWidget.item(3)
+ item.setText(_translate("MainWindow", "新建项目"))
+ item = self.listWidget.item(4)
+ item.setText(_translate("MainWindow", "新建项目"))
+ self.listWidget.setSortingEnabled(__sortingEnabled)
+ self.menu_F.setTitle(_translate("MainWindow", "文件(F)"))
+ self.menu.setTitle(_translate("MainWindow", "编辑"))
+ self.menu_2.setTitle(_translate("MainWindow", "帮助"))
+ self.menu_about.setTitle(_translate("MainWindow", "关于"))
+ self.action_3.setText(_translate("MainWindow", "保存"))
+ self.action_4.setText(_translate("MainWindow", "退出"))
+ self.action.setText(_translate("MainWindow", "关于"))
+ self.action_desc.setText(_translate("MainWindow", "说明"))
diff --git a/app/ui_pc/mainwindow.ui b/app/ui_pc/mainwindow.ui
new file mode 100644
index 0000000..3bbcb76
--- /dev/null
+++ b/app/ui_pc/mainwindow.ui
@@ -0,0 +1,242 @@
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 1280
+ 779
+
+
+
+ MainWindow
+
+
+
+ /*去掉item虚线边框*/
+ QListWidget, QListView, QTreeWidget, QTreeView {
+ outline: 0px;
+ }
+ /*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/
+ QListWidget {
+ min-width: 120px;
+ max-width: 120px;
+ color: black;
+ background: white;
+ border:none;
+ }
+ QListWidget::item{
+ height:80;
+ }
+ /*被选中时的背景颜色和左边框颜色*/
+ QListWidget::item:selected {
+ background: rgb(204, 204, 204);
+ border-left: 4px solid rgb(9, 187, 7);
+ }
+ /*鼠标悬停颜色*/
+ HistoryPanel::item:hover {
+ background: rgb(52, 52, 52);
+ }
+
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 80
+ 500
+
+
+
+
+ 80
+ 16777215
+
+
+
+ background-color:rgb(240,240,240)
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+
+
+ 10
+ 40
+ 60
+ 60
+
+
+
+ avatar
+
+
+
+
+
+ 0
+ 230
+ 80
+ 331
+
+
+
+
+ 80
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ QAbstractScrollArea::AdjustIgnored
+
+
-
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+
+
+
+ -
+
+
+
+ 微软雅黑
+ 50
+ false
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+ 退出
+
+
+
+
+ 关于
+
+
+
+ Microsoft YaHei UI
+
+
+
+
+
+ 说明
+
+
+
+
+
+
diff --git a/app/ui_pc/tool/__init__.py b/app/ui_pc/tool/__init__.py
new file mode 100644
index 0000000..8fe2f8e
--- /dev/null
+++ b/app/ui_pc/tool/__init__.py
@@ -0,0 +1,3 @@
+from .tool_window import ToolWindow
+
+__all__ = ['ToolWindow']
diff --git a/app/ui_pc/tool/pc_decrypt/__init__.py b/app/ui_pc/tool/pc_decrypt/__init__.py
new file mode 100644
index 0000000..ae1c618
--- /dev/null
+++ b/app/ui_pc/tool/pc_decrypt/__init__.py
@@ -0,0 +1,3 @@
+from .pc_decrypt import DecryptControl
+
+__all__ = ['DecryptControl']
diff --git a/app/ui_pc/tool/pc_decrypt/decryptUi.py b/app/ui_pc/tool/pc_decrypt/decryptUi.py
new file mode 100644
index 0000000..44145d5
--- /dev/null
+++ b/app/ui_pc/tool/pc_decrypt/decryptUi.py
@@ -0,0 +1,164 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'decryptUi.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.7
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(611, 519)
+ font = QtGui.QFont()
+ font.setFamily("微软雅黑")
+ Dialog.setFont(font)
+ Dialog.setLayoutDirection(QtCore.Qt.LeftToRight)
+ self.horizontalLayout_4 = QtWidgets.QHBoxLayout(Dialog)
+ self.horizontalLayout_4.setObjectName("horizontalLayout_4")
+ self.verticalLayout_2 = QtWidgets.QVBoxLayout()
+ self.verticalLayout_2.setObjectName("verticalLayout_2")
+ spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.verticalLayout_2.addItem(spacerItem)
+ self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+ spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_3.addItem(spacerItem1)
+ self.verticalLayout = QtWidgets.QVBoxLayout()
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.label_3 = QtWidgets.QLabel(Dialog)
+ font = QtGui.QFont()
+ font.setFamily("一纸情书")
+ font.setPointSize(20)
+ self.label_3.setFont(font)
+ self.label_3.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_3.setObjectName("label_3")
+ self.verticalLayout.addWidget(self.label_3)
+ self.gridLayout_2 = QtWidgets.QGridLayout()
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.gridLayout = QtWidgets.QGridLayout()
+ self.gridLayout.setObjectName("gridLayout")
+ self.label_phone = QtWidgets.QLabel(Dialog)
+ self.label_phone.setText("")
+ self.label_phone.setObjectName("label_phone")
+ self.gridLayout.addWidget(self.label_phone, 2, 1, 1, 1)
+ self.label_7 = QtWidgets.QLabel(Dialog)
+ self.label_7.setObjectName("label_7")
+ self.gridLayout.addWidget(self.label_7, 1, 0, 1, 1)
+ self.lineEdit = QtWidgets.QLineEdit(Dialog)
+ self.lineEdit.setStyleSheet("background:transparent;border-width:0;border-style:outset")
+ self.lineEdit.setFrame(False)
+ self.lineEdit.setObjectName("lineEdit")
+ self.gridLayout.addWidget(self.lineEdit, 4, 1, 1, 1)
+ self.label_5 = QtWidgets.QLabel(Dialog)
+ self.label_5.setObjectName("label_5")
+ self.gridLayout.addWidget(self.label_5, 3, 0, 1, 1)
+ self.label_6 = QtWidgets.QLabel(Dialog)
+ self.label_6.setObjectName("label_6")
+ self.gridLayout.addWidget(self.label_6, 5, 0, 1, 1)
+ self.label_key = QtWidgets.QLabel(Dialog)
+ self.label_key.setText("")
+ self.label_key.setObjectName("label_key")
+ self.gridLayout.addWidget(self.label_key, 5, 1, 1, 1)
+ self.label = QtWidgets.QLabel(Dialog)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+ self.label_2 = QtWidgets.QLabel(Dialog)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
+ self.label_pid = QtWidgets.QLabel(Dialog)
+ self.label_pid.setText("")
+ self.label_pid.setObjectName("label_pid")
+ self.gridLayout.addWidget(self.label_pid, 0, 1, 1, 1)
+ self.label_name = QtWidgets.QLabel(Dialog)
+ self.label_name.setText("")
+ self.label_name.setObjectName("label_name")
+ self.gridLayout.addWidget(self.label_name, 3, 1, 1, 1)
+ self.label_4 = QtWidgets.QLabel(Dialog)
+ self.label_4.setObjectName("label_4")
+ self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1)
+ self.label_version = QtWidgets.QLabel(Dialog)
+ self.label_version.setText("")
+ self.label_version.setObjectName("label_version")
+ self.gridLayout.addWidget(self.label_version, 1, 1, 1, 1)
+ self.label_8 = QtWidgets.QLabel(Dialog)
+ self.label_8.setObjectName("label_8")
+ self.gridLayout.addWidget(self.label_8, 6, 0, 1, 1)
+ self.label_db_dir = QtWidgets.QLabel(Dialog)
+ self.label_db_dir.setText("")
+ self.label_db_dir.setObjectName("label_db_dir")
+ self.gridLayout.addWidget(self.label_db_dir, 6, 1, 1, 1)
+ self.gridLayout.setColumnMinimumWidth(0, 1)
+ self.gridLayout.setColumnStretch(0, 1)
+ self.gridLayout.setColumnStretch(1, 10)
+ self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 2, 1)
+ self.btn_getinfo = QtWidgets.QPushButton(Dialog)
+ self.btn_getinfo.setMinimumSize(QtCore.QSize(0, 60))
+ self.btn_getinfo.setObjectName("btn_getinfo")
+ self.gridLayout_2.addWidget(self.btn_getinfo, 0, 1, 1, 1)
+ self.checkBox = QtWidgets.QCheckBox(Dialog)
+ self.checkBox.setText("")
+ self.checkBox.setObjectName("checkBox")
+ self.gridLayout_2.addWidget(self.checkBox, 0, 2, 1, 1)
+ self.btn_db_dir = QtWidgets.QPushButton(Dialog)
+ self.btn_db_dir.setMinimumSize(QtCore.QSize(0, 60))
+ self.btn_db_dir.setObjectName("btn_db_dir")
+ self.gridLayout_2.addWidget(self.btn_db_dir, 1, 1, 1, 1)
+ self.checkBox_2 = QtWidgets.QCheckBox(Dialog)
+ self.checkBox_2.setText("")
+ self.checkBox_2.setObjectName("checkBox_2")
+ self.gridLayout_2.addWidget(self.checkBox_2, 1, 2, 1, 1)
+ self.verticalLayout.addLayout(self.gridLayout_2)
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_2.addItem(spacerItem2)
+ self.pushButton_3 = QtWidgets.QPushButton(Dialog)
+ self.pushButton_3.setMinimumSize(QtCore.QSize(0, 60))
+ self.pushButton_3.setMaximumSize(QtCore.QSize(100, 16777215))
+ self.pushButton_3.setObjectName("pushButton_3")
+ self.horizontalLayout_2.addWidget(self.pushButton_3)
+ spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_2.addItem(spacerItem3)
+ self.verticalLayout.addLayout(self.horizontalLayout_2)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.label_ready = QtWidgets.QLabel(Dialog)
+ self.label_ready.setObjectName("label_ready")
+ self.horizontalLayout.addWidget(self.label_ready)
+ self.progressBar = QtWidgets.QProgressBar(Dialog)
+ self.progressBar.setProperty("value", 50)
+ self.progressBar.setObjectName("progressBar")
+ self.horizontalLayout.addWidget(self.progressBar)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.horizontalLayout_3.addLayout(self.verticalLayout)
+ spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_3.addItem(spacerItem4)
+ self.verticalLayout_2.addLayout(self.horizontalLayout_3)
+ spacerItem5 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.verticalLayout_2.addItem(spacerItem5)
+ self.horizontalLayout_4.addLayout(self.verticalLayout_2)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.label_3.setText(_translate("Dialog", "解密数据库"))
+ self.label_7.setText(_translate("Dialog", "版本"))
+ self.label_5.setText(_translate("Dialog", "微信昵称"))
+ self.label_6.setText(_translate("Dialog", "密钥"))
+ self.label.setText(_translate("Dialog", "PID"))
+ self.label_2.setText(_translate("Dialog", "手机号"))
+ self.label_4.setText(_translate("Dialog", "wxid"))
+ self.label_8.setText(_translate("Dialog", "微信路径"))
+ self.btn_getinfo.setText(_translate("Dialog", "获取信息"))
+ self.btn_db_dir.setText(_translate("Dialog", "设置微信路径"))
+ self.pushButton_3.setText(_translate("Dialog", "开始解密"))
+ self.label_ready.setText(_translate("Dialog", "未就绪"))
diff --git a/app/ui_pc/tool/pc_decrypt/decryptUi.ui b/app/ui_pc/tool/pc_decrypt/decryptUi.ui
new file mode 100644
index 0000000..846fc4c
--- /dev/null
+++ b/app/ui_pc/tool/pc_decrypt/decryptUi.ui
@@ -0,0 +1,328 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 611
+ 519
+
+
+
+
+ 微软雅黑
+
+
+
+ Dialog
+
+
+ Qt::LeftToRight
+
+
+ -
+
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
-
+
+
+
+ 一纸情书
+ 20
+
+
+
+ 解密数据库
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
-
+
+
-
+
+
+
+
+
+
+ -
+
+
+ 版本
+
+
+
+ -
+
+
+
+ background:transparent;border-width:0;border-style:outset
+
+
+
+ false
+
+
+
+ -
+
+
+ 微信昵称
+
+
+
+ -
+
+
+ 密钥
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ PID
+
+
+
+ -
+
+
+ 手机号
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ wxid
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ 微信路径
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 60
+
+
+
+ 获取信息
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 60
+
+
+
+ 设置微信路径
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 60
+
+
+
+
+ 100
+ 16777215
+
+
+
+ 开始解密
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ 未就绪
+
+
+
+ -
+
+
+ 50
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/Ui/pc_decrypt/pc_decrypt.py b/app/ui_pc/tool/pc_decrypt/pc_decrypt.py
similarity index 99%
rename from app/Ui/pc_decrypt/pc_decrypt.py
rename to app/ui_pc/tool/pc_decrypt/pc_decrypt.py
index 9f236f2..af71116 100644
--- a/app/Ui/pc_decrypt/pc_decrypt.py
+++ b/app/ui_pc/tool/pc_decrypt/pc_decrypt.py
@@ -88,7 +88,7 @@ class DecryptControl(QWidget, decryptUi.Ui_Dialog):
# 中间可以添加处理逻辑
# QMessageBox.about(self, "解密成功", "数据库文件存储在app/DataBase/Msg文件夹下")
self.DecryptSignal.emit('ok')
- self.close()
+ # self.close()
def setProgressBarMaxNum(self, max_val):
self.progressBar.setRange(0, max_val)
diff --git a/app/ui_pc/tool/toolUI.py b/app/ui_pc/tool/toolUI.py
new file mode 100644
index 0000000..c459a95
--- /dev/null
+++ b/app/ui_pc/tool/toolUI.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'toolUI.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.7
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(630, 633)
+ font = QtGui.QFont()
+ font.setFamily("微软雅黑")
+ Dialog.setFont(font)
+ self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
+ self.horizontalLayout.setSpacing(0)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.label = QtWidgets.QLabel(Dialog)
+ self.label.setMaximumSize(QtCore.QSize(80, 80))
+ self.label.setObjectName("label")
+ self.horizontalLayout.addWidget(self.label)
+ self.listWidget = QtWidgets.QListWidget(Dialog)
+ self.listWidget.setMinimumSize(QtCore.QSize(500, 80))
+ self.listWidget.setMaximumSize(QtCore.QSize(500, 80))
+ self.listWidget.setFrameShape(QtWidgets.QFrame.NoFrame)
+ self.listWidget.setFrameShadow(QtWidgets.QFrame.Plain)
+ self.listWidget.setLineWidth(0)
+ self.listWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+ self.listWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+ self.listWidget.setFlow(QtWidgets.QListView.LeftToRight)
+ self.listWidget.setObjectName("listWidget")
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ item = QtWidgets.QListWidgetItem()
+ self.listWidget.addItem(item)
+ self.horizontalLayout.addWidget(self.listWidget)
+ self.label_2 = QtWidgets.QLabel(Dialog)
+ self.label_2.setMaximumSize(QtCore.QSize(80, 80))
+ self.label_2.setObjectName("label_2")
+ self.horizontalLayout.addWidget(self.label_2)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.stackedWidget = QtWidgets.QStackedWidget(Dialog)
+ self.stackedWidget.setObjectName("stackedWidget")
+ self.verticalLayout.addWidget(self.stackedWidget)
+ self.verticalLayout.setStretch(1, 1)
+
+ self.retranslateUi(Dialog)
+ self.stackedWidget.setCurrentIndex(-1)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.label.setText(_translate("Dialog", "TextLabel"))
+ __sortingEnabled = self.listWidget.isSortingEnabled()
+ self.listWidget.setSortingEnabled(False)
+ item = self.listWidget.item(0)
+ item.setText(_translate("Dialog", "新建项目"))
+ item = self.listWidget.item(1)
+ item.setText(_translate("Dialog", "新建项目"))
+ item = self.listWidget.item(2)
+ item.setText(_translate("Dialog", "新建项目"))
+ item = self.listWidget.item(3)
+ item.setText(_translate("Dialog", "新建项目"))
+ item = self.listWidget.item(4)
+ item.setText(_translate("Dialog", "新建项目"))
+ self.listWidget.setSortingEnabled(__sortingEnabled)
+ self.label_2.setText(_translate("Dialog", "TextLabel"))
diff --git a/app/ui_pc/tool/toolUI.ui b/app/ui_pc/tool/toolUI.ui
new file mode 100644
index 0000000..19fb825
--- /dev/null
+++ b/app/ui_pc/tool/toolUI.ui
@@ -0,0 +1,128 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 630
+ 547
+
+
+
+
+ 微软雅黑
+
+
+
+ Dialog
+
+
+ -
+
+
+ 0
+
+
+ QLayout::SetDefaultConstraint
+
+
-
+
+
+
+ 80
+ 80
+
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+ 500
+ 80
+
+
+
+
+ 500
+ 80
+
+
+
+ QFrame::NoFrame
+
+
+ QFrame::Plain
+
+
+ 0
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ QListView::LeftToRight
+
+
-
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+ -
+
+ 新建项目
+
+
+
+
+ -
+
+
+
+ 80
+ 80
+
+
+
+ TextLabel
+
+
+
+
+
+ -
+
+
+ -1
+
+
+
+
+
+
+
+
diff --git a/app/ui_pc/tool/tool_window.py b/app/ui_pc/tool/tool_window.py
new file mode 100644
index 0000000..29d1bf3
--- /dev/null
+++ b/app/ui_pc/tool/tool_window.py
@@ -0,0 +1,77 @@
+from random import randint
+
+from PyQt5.QtCore import Qt
+from PyQt5.QtWidgets import QWidget, QListWidgetItem, QLabel
+
+from .pc_decrypt import DecryptControl
+from .toolUI import Ui_Dialog
+from ...Ui.Icon import Icon
+
+# 美化样式表
+Stylesheet = """
+
+/*去掉item虚线边框*/
+QListWidget, QListView, QTreeWidget, QTreeView {
+ outline: 0px;
+ border:none;
+ background-color:rgb(240,240,240)
+}
+/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/
+QListWidget {
+ min-width: 400px;
+ max-width: 400px;
+ min-height: 80px;
+ max-height: 80px;
+ color: black;
+ border:none;
+}
+QListWidget::item{
+ height:80px;
+ width:80px;
+}
+/*被选中时的背景颜色和左边框颜色*/
+QListWidget::item:selected {
+ background: rgb(204, 204, 204);
+ border-bottom: 4px solid rgb(9, 187, 7);
+ border-left:none;
+ color: black;
+ font-weight: bold;
+}
+/*鼠标悬停颜色*/
+HistoryPanel::item:hover {
+ background: rgb(52, 52, 52);
+}
+"""
+
+
+class ToolWindow(QWidget, Ui_Dialog):
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.setupUi(self)
+ self.setStyleSheet(Stylesheet)
+ self.init_ui()
+
+ def init_ui(self):
+ self.listWidget.clear()
+ self.listWidget.currentRowChanged.connect(self.setCurrentIndex)
+ chat_item = QListWidgetItem(Icon.Chat_Icon, '解密', self.listWidget)
+ contact_item = QListWidgetItem(Icon.Contact_Icon, 'None', self.listWidget)
+ myinfo_item = QListWidgetItem(Icon.MyInfo_Icon, 'None', self.listWidget)
+ tool_item = QListWidgetItem(Icon.MyInfo_Icon, 'None', self.listWidget)
+ tool_window = DecryptControl()
+ self.stackedWidget.addWidget(tool_window)
+ label = QLabel('我是页面', self)
+ label.setAlignment(Qt.AlignCenter)
+ # 设置label的背景颜色(这里随机)
+ # 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色)
+ label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % (
+ randint(0, 255), randint(0, 255), randint(0, 255)))
+ self.stackedWidget.addWidget(label)
+ self.stackedWidget.addWidget(label)
+ self.stackedWidget.addWidget(label)
+ self.listWidget.setCurrentRow(0)
+ self.stackedWidget.setCurrentIndex(0)
+
+ def setCurrentIndex(self, row):
+ print(row)
+ self.stackedWidget.setCurrentIndex(row)
diff --git a/decrypt_window.py b/decrypt_window.py
index 2918b42..04f7b7b 100644
--- a/decrypt_window.py
+++ b/decrypt_window.py
@@ -1,10 +1,12 @@
import ctypes
import sys
+import time
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
-from app.Ui import pc_decrypt
+from app.ui_pc import mainview
+from app.ui_pc.tool.pc_decrypt import pc_decrypt
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("WeChatReport")
@@ -26,6 +28,23 @@ class ViewController(QWidget):
self.viewDecrypt.DecryptSignal.connect(self.show_success)
self.viewDecrypt.show()
+ def loadMainWinView(self, username=None):
+ """
+ 聊天界面
+ :param username: 账号
+ :return:
+ """
+ username = ''
+ start = time.time()
+ self.viewMainWIn = mainview.MainWinController(username=username)
+ self.viewMainWIn.setWindowTitle("Chat")
+ # print(username)
+ self.viewMainWIn.username = username
+ # self.viewMainWIn.exitSignal.connect(self.loadDecryptView) # 不需要回到登录界面可以省略
+ self.viewMainWIn.show()
+ end = time.time()
+ print('ok', end - start)
+
def show_success(self):
QMessageBox.about(self, "解密成功", "数据库文件存储在\napp/DataBase/Msg\n文件夹下")
@@ -33,6 +52,7 @@ class ViewController(QWidget):
if __name__ == '__main__':
app = QApplication(sys.argv)
view = ViewController()
- view.loadPCDecryptView()
+ # view.loadPCDecryptView()
+ view.loadMainWinView()
# view.show_success()
sys.exit(app.exec_())
diff --git a/main.py b/main.py
index 6fdd1dd..b21f867 100644
--- a/main.py
+++ b/main.py
@@ -5,7 +5,7 @@ import time
from PyQt5.QtWidgets import *
import app.DataBase.data as DB
-from app.Ui import decrypt, mainview, pc_decrypt
+from app.Ui import decrypt, mainview
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("WeChatReport")