diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 9d6b5b0..2da2981 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,8 +4,12 @@
-
-
+
+
+
+
+
+
@@ -276,13 +280,6 @@
1672848140146
-
- 1699025065814
-
-
-
- 1699025065814
-
1699026207401
@@ -619,7 +616,14 @@
1700583772986
-
+
+ 1700583952342
+
+
+
+ 1700583952342
+
+
@@ -669,7 +673,6 @@
-
@@ -680,7 +683,8 @@
-
+
+
diff --git a/app/data/icons/loading.svg b/app/data/icons/loading.svg
new file mode 100644
index 0000000..b27ddf0
--- /dev/null
+++ b/app/data/icons/loading.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/decrypt/dat2pic.py b/app/decrypt/dat2pic.py
index 04e2be9..9465b36 100644
--- a/app/decrypt/dat2pic.py
+++ b/app/decrypt/dat2pic.py
@@ -57,6 +57,8 @@ def decode_dat(file_path, out_path):
else:
pic_name = file_path[:-4] + ".jpg"
file_outpath = os.path.join(out_path, pic_name)
+ if os.path.exists(file_outpath):
+ return file_outpath
with open(file_path, 'rb') as file_in:
data = file_in.read()
# 对数据进行异或加密/解密
diff --git a/app/ui_pc/chat/chat_info.py b/app/ui_pc/chat/chat_info.py
index 8ea9eaa..dd30c1e 100644
--- a/app/ui_pc/chat/chat_info.py
+++ b/app/ui_pc/chat/chat_info.py
@@ -74,7 +74,6 @@ class ChatInfo(QWidget):
def is_5_min(self, timestamp):
if abs(timestamp - self.last_timestamp) > 300:
self.last_timestamp = timestamp
-
return True
return False
diff --git a/app/ui_pc/mainview.py b/app/ui_pc/mainview.py
index 3448422..7db9025 100644
--- a/app/ui_pc/mainview.py
+++ b/app/ui_pc/mainview.py
@@ -63,7 +63,8 @@ HistoryPanel::item:hover {
class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
- exitSignal = pyqtSignal()
+ exitSignal = pyqtSignal(bool)
+ okSignal = pyqtSignal(bool)
# username = ''
def __init__(self, username, parent=None):
@@ -75,8 +76,10 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
self.resize(QSize(800, 600))
self.action_desc.triggered.connect(self.about)
self.load_data()
- self.init_ui()
self.load_num = 0
+ self.label = QLabel(self)
+ self.label.setGeometry((self.width() - 300) // 2, (self.height() - 100) // 2, 300, 100)
+ self.label.setPixmap(QPixmap('./app/data/icons/loading.svg'))
def load_data(self):
if os.path.exists('./app/data/info.json'):
@@ -98,12 +101,8 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
)
def init_ui(self):
- # self.movie = QMovie("./app/data/loading.gif")
- self.label = QLabel(self)
- self.label.setGeometry(0, 0, self.width(), self.height())
- self.label.setVisible(False)
- # self.label.setMovie(self.movie)
- # self.movie.start()
+ self.listWidget.setVisible(False)
+ self.stackedWidget.setVisible(False)
self.listWidget.currentRowChanged.connect(self.setCurrentIndex)
tool_item = QListWidgetItem(Icon.MyInfo_Icon, '工具', self.listWidget)
chat_item = QListWidgetItem(Icon.Chat_Icon, '聊天', self.listWidget)
@@ -116,11 +115,11 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
self.stackedWidget.addWidget(tool_window)
self.listWidget.setCurrentRow(0)
self.stackedWidget.setCurrentIndex(0)
- chat_window = ChatWindow()
+ self.chat_window = ChatWindow()
# chat_window = QWidget()
- self.stackedWidget.addWidget(chat_window)
- contact_window = ContactWindow()
- self.stackedWidget.addWidget(contact_window)
+ self.stackedWidget.addWidget(self.chat_window)
+ self.contact_window = ContactWindow()
+ self.stackedWidget.addWidget(self.contact_window)
label = QLabel('我是页面')
label.setAlignment(Qt.AlignCenter)
# 设置label的背景颜色(这里随机)
@@ -129,11 +128,11 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
randint(0, 255), randint(0, 255), randint(0, 255)))
self.stackedWidget.addWidget(label)
tool_window.load_finish_signal.connect(self.loading)
- contact_window.load_finish_signal.connect(self.loading)
- # chat_window.load_finish_signal.connect(self.loading)
- # self.load_window_thread = LoadWindowThread(self.stackedWidget)
- # self.load_window_thread.okSignal.connect(self.stop_loading)
- # self.load_window_thread.start()
+ self.contact_window.load_finish_signal.connect(self.loading)
+ self.chat_window.load_finish_signal.connect(self.loading)
+ # self.load_thread = LoadWindowThread()
+ # self.load_thread.okSignal.connect(self.load_window)
+ # self.load_thread.start()
def setCurrentIndex(self, row):
self.stackedWidget.setCurrentIndex(row)
@@ -170,11 +169,15 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
def loading(self, a0):
self.load_num += 1
- self.label.setVisible(False)
- # print('加载一个了')
+ # self.label.setVisible(False)
+ print('加载一个了')
if self.load_num == 2:
- # print('ok了')
- self.label.setVisible(False)
+ print('ok了')
+ self.label.clear()
+ self.label.hide()
+ self.okSignal.emit(True)
+ self.listWidget.setVisible(True)
+ self.stackedWidget.setVisible(True)
def about(self):
"""
@@ -198,20 +201,20 @@ class LoadWindowThread(QThread):
windowSignal = pyqtSignal(QWidget)
okSignal = pyqtSignal(bool)
- def __init__(self, stackedWidget):
+ def __init__(self):
super().__init__()
- self.stackedWidget = stackedWidget
+ self.num = 0
+
+ def loading(self):
+ self.num += 1
+ print('加载一个了')
+ if self.num == 2:
+ self.okSignal.emit(True)
def run(self):
- chat_window = ChatWindow()
- self.stackedWidget.addWidget(chat_window)
- contact_window = ContactWindow()
- self.stackedWidget.addWidget(contact_window)
- label = QLabel('我是页面')
- 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.chat_window = ChatWindow()
+ self.contact_window = ContactWindow()
+ self.contact_window.load_finish_signal.connect(self.loading)
+ self.chat_window.load_finish_signal.connect(self.loading)
+ print('加载完成')
self.okSignal.emit(True)
diff --git a/main_pc.py b/main_pc.py
index 04f7b7b..54fe820 100644
--- a/main_pc.py
+++ b/main_pc.py
@@ -2,7 +2,7 @@ import ctypes
import sys
import time
-from PyQt5.QtGui import QIcon
+from PyQt5.QtGui import QIcon, QMovie
from PyQt5.QtWidgets import *
from app.ui_pc import mainview
@@ -16,8 +16,13 @@ class ViewController(QWidget):
super().__init__()
self.setWindowTitle('解密')
self.setWindowIcon(QIcon('./app/data/icons/logo.svg'))
- self.viewMainWIn = None
+ self.viewMainWIndow = None
self.viewDecrypt = None
+ # 创建加载动画
+ loading_label = QLabel()
+ movie = QMovie("./app/data/loading.gif") # 替换为你的加载动画文件路径
+ loading_label.setMovie(movie)
+ movie.start()
def loadPCDecryptView(self):
"""
@@ -36,14 +41,16 @@ class ViewController(QWidget):
"""
username = ''
start = time.time()
- self.viewMainWIn = mainview.MainWinController(username=username)
- self.viewMainWIn.setWindowTitle("Chat")
+ self.viewMainWIndow = mainview.MainWinController(username=username)
+ self.viewMainWIndow.setWindowTitle("Chat")
# print(username)
- self.viewMainWIn.username = username
+ self.viewMainWIndow.username = username
# self.viewMainWIn.exitSignal.connect(self.loadDecryptView) # 不需要回到登录界面可以省略
- self.viewMainWIn.show()
+
+ self.viewMainWIndow.show()
end = time.time()
print('ok', end - start)
+ self.viewMainWIndow.init_ui()
def show_success(self):
QMessageBox.about(self, "解密成功", "数据库文件存储在\napp/DataBase/Msg\n文件夹下")
@@ -54,5 +61,6 @@ if __name__ == '__main__':
view = ViewController()
# view.loadPCDecryptView()
view.loadMainWinView()
+ # view.show()
# view.show_success()
sys.exit(app.exec_())