From 19e485cae0e189c69c6f176e01ec6c54315d1882 Mon Sep 17 00:00:00 2001
From: shuaikangzhou <863909694@qq.com>
Date: Fri, 17 Nov 2023 23:02:40 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=A4=B4=E5=83=8F=E6=98=BE?=
=?UTF-8?q?=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/workspace.xml | 34 ++++++++++++-------------
app/config.py | 2 +-
app/person.py | 21 ++-------------
app/ui_pc/chat/chat_info.py | 6 +++--
app/ui_pc/mainview.py | 18 ++++++++++++-
app/ui_pc/tool/pc_decrypt/pc_decrypt.py | 3 ++-
app/ui_pc/tool/tool_window.py | 9 ++++---
7 files changed, 49 insertions(+), 44 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f0acf67..4c87ef5 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,13 +4,13 @@
-
+
-
-
-
+
+
+
@@ -276,13 +276,6 @@
1672848140146
-
- 1684598177829
-
-
-
- 1684598177830
-
1684598440645
@@ -619,7 +612,14 @@
1700228064961
-
+
+ 1700232296923
+
+
+
+ 1700232296923
+
+
@@ -655,7 +655,6 @@
-
@@ -680,7 +679,8 @@
-
+
+
@@ -704,17 +704,17 @@
file://$PROJECT_DIR$/app/person.py
- 116
+ 101
file://$PROJECT_DIR$/app/person.py
- 114
+ 99
file://$PROJECT_DIR$/app/person.py
- 115
+ 100
diff --git a/app/config.py b/app/config.py
index 87ce4e1..37ed164 100644
--- a/app/config.py
+++ b/app/config.py
@@ -1,2 +1,2 @@
-version = '0.2.0'
+version = '0.2.1'
contact = '474379264'
diff --git a/app/person.py b/app/person.py
index deb07b9..0ad5ad5 100644
--- a/app/person.py
+++ b/app/person.py
@@ -54,24 +54,7 @@ def singleton(cls):
@singleton
class MePC:
def __init__(self):
- contact_info = {
- 'UserName': 'contact_info_list[0]',
- 'Alias': 'contact_info_list[1]',
- 'Type': 'contact_info_list[2]',
- 'Remark': 'contact_info_list[3]',
- 'NickName': 'contact_info_list[4]',
- 'smallHeadImgUrl': 'contact_info_list[7]'
- }
- self.wxid = contact_info.get('UserName')
- self.remark = contact_info.get('Remark')
- # Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl,bigHeadImgUrl
- self.alias = contact_info.get('Alias')
- self.nickName = contact_info.get('NickName')
- if not self.remark:
- self.remark = self.nickName
- self.smallHeadImgUrl = contact_info.get('smallHeadImgUrl')
- self.smallHeadImgBLOG = b''
- self.avatar = QPixmap()
+ self.avatar = QPixmap(Icon.Default_avatar_path)
def set_avatar(self, img_bytes):
if not img_bytes:
@@ -81,7 +64,7 @@ class MePC:
self.avatar.loadFromData(img_bytes, format='PNG')
else:
self.avatar.loadFromData(img_bytes, format='jfif')
- self.avatar.scaled(60, 60, Qt.IgnoreAspectRatio, Qt.SmoothTransformation)
+ self.avatar = QPixmap()
class ContactPC:
diff --git a/app/ui_pc/chat/chat_info.py b/app/ui_pc/chat/chat_info.py
index 47fab74..72f0573 100644
--- a/app/ui_pc/chat/chat_info.py
+++ b/app/ui_pc/chat/chat_info.py
@@ -3,6 +3,7 @@ from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSpacerItem, QSizePolicy, QLab
from app.DataBase import msg
from app.components.bubble_message import BubbleMessage, ScrollBar, ScrollArea, ScrollAreaContent
+from app.person import MePC
class ChatInfo(QWidget):
@@ -52,12 +53,13 @@ class ChatInfo(QWidget):
try:
type_ = message[2]
# print(type_, type(type_))
+ is_send = message[4]
+ avatar = MePC().avatar if is_send else self.contact.avatar
if type_ == 1:
str_content = message[7]
- is_send = message[4]
bubble_message = BubbleMessage(
str_content,
- self.contact.avatar,
+ avatar,
type_,
is_send
)
diff --git a/app/ui_pc/mainview.py b/app/ui_pc/mainview.py
index ed3f43c..8d7165b 100644
--- a/app/ui_pc/mainview.py
+++ b/app/ui_pc/mainview.py
@@ -10,15 +10,17 @@
from random import randint
from PyQt5.QtCore import *
+from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import *
from app import config
-from app.DataBase import msg
+from app.DataBase import msg, misc
from app.Ui.Icon import Icon
from . import mainwindow
from .chat import ChatWindow
from .contact import ContactWindow
from .tool import ToolWindow
+from ..person import MePC
# 美化样式表
Stylesheet = """
@@ -81,6 +83,7 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
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()
@@ -102,6 +105,19 @@ class MainWinController(QMainWindow, mainwindow.Ui_MainWindow):
self.contact_window.show_contacts()
self.stackedWidget.setCurrentIndex(row)
+ def set_my_info(self, wxid):
+ self.avatar = QPixmap()
+ img_bytes = misc.get_avatar_buffer(wxid)
+ if img_bytes[:4] == b'\x89PNG':
+ self.avatar.loadFromData(img_bytes, format='PNG')
+ else:
+ self.avatar.loadFromData(img_bytes, format='jfif')
+ self.avatar.scaled(60, 60)
+ me = MePC()
+ me.set_avatar(img_bytes)
+ self.myavatar.setScaledContents(True)
+ self.myavatar.setPixmap(self.avatar)
+
def about(self):
"""
关于
diff --git a/app/ui_pc/tool/pc_decrypt/pc_decrypt.py b/app/ui_pc/tool/pc_decrypt/pc_decrypt.py
index dd10e57..41f19f7 100644
--- a/app/ui_pc/tool/pc_decrypt/pc_decrypt.py
+++ b/app/ui_pc/tool/pc_decrypt/pc_decrypt.py
@@ -12,7 +12,7 @@ from . import decryptUi
class DecryptControl(QWidget, decryptUi.Ui_Dialog):
DecryptSignal = pyqtSignal(str)
- registerSignal = pyqtSignal(str)
+ get_wxidSignal = pyqtSignal(str)
def __init__(self, parent=None):
super(DecryptControl, self).__init__(parent)
@@ -47,6 +47,7 @@ class DecryptControl(QWidget, decryptUi.Ui_Dialog):
self.label_version.setText(self.info['version'])
self.lineEdit.setFocus()
self.checkBox.setChecked(True)
+ self.get_wxidSignal.emit(self.info['wxid'])
if self.wx_dir and os.path.exists(os.path.join(self.wx_dir, self.info['wxid'])):
self.label_ready.setText('已就绪')
except Exception as e:
diff --git a/app/ui_pc/tool/tool_window.py b/app/ui_pc/tool/tool_window.py
index 29d1bf3..0963e2d 100644
--- a/app/ui_pc/tool/tool_window.py
+++ b/app/ui_pc/tool/tool_window.py
@@ -1,6 +1,6 @@
from random import randint
-from PyQt5.QtCore import Qt
+from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QWidget, QListWidgetItem, QLabel
from .pc_decrypt import DecryptControl
@@ -45,6 +45,8 @@ HistoryPanel::item:hover {
class ToolWindow(QWidget, Ui_Dialog):
+ get_info_signal = pyqtSignal(str)
+
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
@@ -58,8 +60,9 @@ class ToolWindow(QWidget, Ui_Dialog):
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)
+ decrypt_window = DecryptControl()
+ decrypt_window.get_wxidSignal.connect(self.get_info_signal)
+ self.stackedWidget.addWidget(decrypt_window)
label = QLabel('我是页面', self)
label.setAlignment(Qt.AlignCenter)
# 设置label的背景颜色(这里随机)