diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 4c87ef5..dde2923 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,12 +4,14 @@
-
+
+
+
-
+
+
-
@@ -276,13 +278,6 @@
1672848140146
-
- 1684598440645
-
-
-
- 1684598440645
-
1684599002132
@@ -619,7 +614,14 @@
1700232296923
-
+
+ 1700233361985
+
+
+
+ 1700233361985
+
+
@@ -655,7 +657,6 @@
-
@@ -680,7 +681,8 @@
-
+
+
@@ -704,17 +706,17 @@
file://$PROJECT_DIR$/app/person.py
- 101
+ 100
file://$PROJECT_DIR$/app/person.py
- 99
+ 98
file://$PROJECT_DIR$/app/person.py
- 100
+ 99
diff --git a/app/DataBase/micro_msg.py b/app/DataBase/micro_msg.py
index 5c0b78d..6f1cba0 100644
--- a/app/DataBase/micro_msg.py
+++ b/app/DataBase/micro_msg.py
@@ -31,7 +31,6 @@ def get_contact():
from Contact inner join ContactHeadImgUrl on Contact.UserName = ContactHeadImgUrl.usrName
where Type=3 and Alias is not null
order by PYInitial
- limit 30
'''
cursor.execute(sql)
result = cursor.fetchall()
diff --git a/app/DataBase/msg.py b/app/DataBase/msg.py
index 4b4a94e..b720791 100644
--- a/app/DataBase/msg.py
+++ b/app/DataBase/msg.py
@@ -62,7 +62,7 @@ def get_message_by_num(username_, n):
from MSG
where StrTalker=?
order by CreateTime
- limit 10
+ limit 100
'''
result = []
try:
diff --git a/app/person.py b/app/person.py
index 0ad5ad5..32c8dd4 100644
--- a/app/person.py
+++ b/app/person.py
@@ -64,7 +64,6 @@ class MePC:
self.avatar.loadFromData(img_bytes, format='PNG')
else:
self.avatar.loadFromData(img_bytes, format='jfif')
- self.avatar = QPixmap()
class ContactPC:
diff --git a/app/ui_pc/chat/chat_window.py b/app/ui_pc/chat/chat_window.py
index c5e687f..386790d 100644
--- a/app/ui_pc/chat/chat_window.py
+++ b/app/ui_pc/chat/chat_window.py
@@ -46,6 +46,8 @@ HistoryPanel::item:hover {
class ChatWindow(QWidget, Ui_Form):
+ load_finish_signal = pyqtSignal(bool)
+
def __init__(self, parent=None):
super().__init__(parent)
self.show_thread = None
@@ -56,6 +58,7 @@ class ChatWindow(QWidget, Ui_Form):
self.show_chats()
def init_ui(self):
+
search_action = QAction(self.lineEdit)
search_action.setIcon(Icon.Search_Icon)
self.lineEdit.addAction(search_action, QLineEdit.LeadingPosition)
@@ -74,6 +77,7 @@ class ChatWindow(QWidget, Ui_Form):
return
self.show_thread = ShowContactThread()
self.show_thread.showSingal.connect(self.show_chat)
+ self.show_thread.load_finish_signal.connect(self.stop_loading)
self.show_thread.start()
self.ok_flag = True
@@ -88,9 +92,14 @@ class ChatWindow(QWidget, Ui_Form):
print(row)
self.stackedWidget.setCurrentIndex(row)
+ def stop_loading(self, a0):
+ # self.label.setVisible(False)
+ self.load_finish_signal.emit(True)
+
class ShowContactThread(QThread):
showSingal = pyqtSignal(ContactPC)
+ load_finish_signal = pyqtSignal(bool)
# heightSingal = pyqtSignal(int)
def __init__(self):
@@ -113,3 +122,4 @@ class ShowContactThread(QThread):
contact.set_avatar(contact.smallHeadImgBLOG)
self.showSingal.emit(contact)
# pprint(contact.__dict__)
+ self.load_finish_signal.emit(True)
diff --git a/app/ui_pc/contact/contact_window.py b/app/ui_pc/contact/contact_window.py
index 1496928..51f7102 100644
--- a/app/ui_pc/contact/contact_window.py
+++ b/app/ui_pc/contact/contact_window.py
@@ -46,6 +46,8 @@ HistoryPanel::item:hover {
class ContactWindow(QWidget, Ui_Form):
+ load_finish_signal = pyqtSignal(bool)
+
def __init__(self, parent=None):
super().__init__(parent)
self.show_thread = None
@@ -73,6 +75,7 @@ class ContactWindow(QWidget, Ui_Form):
return
self.show_thread = ShowContactThread()
self.show_thread.showSingal.connect(self.show_contact)
+ self.show_thread.load_finish_signal.connect(self.load_finish_signal)
self.show_thread.start()
self.ok_flag = True
@@ -90,6 +93,7 @@ class ContactWindow(QWidget, Ui_Form):
class ShowContactThread(QThread):
showSingal = pyqtSignal(ContactPC)
+ load_finish_signal = pyqtSignal(bool)
# heightSingal = pyqtSignal(int)
def __init__(self):
@@ -112,3 +116,4 @@ class ShowContactThread(QThread):
contact.set_avatar(contact.smallHeadImgBLOG)
self.showSingal.emit(contact)
# pprint(contact.__dict__)
+ self.load_finish_signal.emit(True)
diff --git a/app/ui_pc/mainview.py b/app/ui_pc/mainview.py
index 8d7165b..88e9967 100644
--- a/app/ui_pc/mainview.py
+++ b/app/ui_pc/mainview.py
@@ -7,6 +7,7 @@
@Version : Python3.10
@comment : 主窗口
"""
+import json
from random import randint
from PyQt5.QtCore import *
@@ -73,37 +74,65 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
self.resize(QSize(800, 600))
# self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
self.action_desc.triggered.connect(self.about)
+ self.load_data()
self.init_ui()
+ self.load_num = 0
+
+ def load_data(self):
+ with open('./app/data/info.json', 'r', encoding='utf-8') as f:
+ dic = json.loads(f.read())
+ wxid = dic.get('wxid')
+ if wxid:
+ me = MePC()
+ self.set_my_info(wxid)
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.setMovie(self.movie)
+ # self.movie.start()
self.listWidget.currentRowChanged.connect(self.setCurrentIndex)
+ tool_item = QListWidgetItem(Icon.MyInfo_Icon, '工具', self.listWidget)
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()
tool_window.get_info_signal.connect(self.set_my_info)
- self.chat_window = ChatWindow()
- self.stackedWidget.addWidget(self.chat_window)
- self.contact_window = ContactWindow()
- # self.contact_window = QWidget()
- self.stackedWidget.addWidget(self.contact_window)
- label = QLabel('我是页面', self)
+ tool_window.load_finish_signal.connect(self.loading)
+ self.stackedWidget.addWidget(tool_window)
+ self.listWidget.setCurrentRow(0)
+ self.stackedWidget.setCurrentIndex(0)
+ 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.stackedWidget.addWidget(tool_window)
- self.listWidget.setCurrentRow(3)
- self.stackedWidget.setCurrentIndex(3)
+ 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()
def setCurrentIndex(self, row):
- if row == 1:
- self.contact_window.show_contacts()
self.stackedWidget.setCurrentIndex(row)
+ if row == 2:
+ self.stackedWidget.currentWidget().show_contacts()
+
+ def setWindow(self, window):
+ try:
+ window.load_finish_signal.connect(self.loading)
+ except:
+ pass
+ self.stackedWidget.addWidget(window)
def set_my_info(self, wxid):
self.avatar = QPixmap()
@@ -115,9 +144,24 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
self.avatar.scaled(60, 60)
me = MePC()
me.set_avatar(img_bytes)
+ dic = {
+ 'wxid': wxid
+ }
+ with open('./app/data/info.json', 'w', encoding='utf-8') as f:
+ f.write(json.dumps(dic))
self.myavatar.setScaledContents(True)
self.myavatar.setPixmap(self.avatar)
+ def stop_loading(self, a0):
+ self.label.setVisible(False)
+
+ def loading(self, a0):
+ self.load_num += 1
+ print('加载一个了')
+ if self.load_num == 2:
+ print('ok了')
+ self.label.setVisible(False)
+
def about(self):
"""
关于
@@ -133,3 +177,26 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
del self.stackedWidget
msg.close()
self.contact_window.close()
+
+
+class LoadWindowThread(QThread):
+ windowSignal = pyqtSignal(QWidget)
+ okSignal = pyqtSignal(bool)
+
+ def __init__(self, stackedWidget):
+ super().__init__()
+ self.stackedWidget = stackedWidget
+
+ 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.okSignal.emit(True)
diff --git a/app/ui_pc/tool/tool_window.py b/app/ui_pc/tool/tool_window.py
index 0963e2d..e6ddb59 100644
--- a/app/ui_pc/tool/tool_window.py
+++ b/app/ui_pc/tool/tool_window.py
@@ -46,12 +46,14 @@ HistoryPanel::item:hover {
class ToolWindow(QWidget, Ui_Dialog):
get_info_signal = pyqtSignal(str)
+ load_finish_signal = pyqtSignal(bool)
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.setStyleSheet(Stylesheet)
self.init_ui()
+ self.load_finish_signal.emit(True)
def init_ui(self):
self.listWidget.clear()