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 @@ - @@ -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 + + + + + + + + + + 0 + 0 + 1280 + 23 + + + + + 文件(F) + + + + + + + + + + 微软雅黑 + + + + 编辑 + + + + + 帮助 + + + + + + 关于 + + + + + + + + + + + + 保存 + + + + + 退出 + + + + + 关于 + + + + 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")