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 @@ - @@ -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的背景颜色(这里随机)