diff --git a/app/Ui/chat/form.py b/app/Ui/chat/form.py
new file mode 100644
index 0000000..2172692
--- /dev/null
+++ b/app/Ui/chat/form.py
@@ -0,0 +1,140 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'form.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_Form(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(878, 720)
+ self.horizontalLayout = QtWidgets.QHBoxLayout(Form)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.scrollArea_2 = QtWidgets.QScrollArea(Form)
+ self.scrollArea_2.setEnabled(True)
+ self.scrollArea_2.setMaximumSize(QtCore.QSize(325, 150000))
+ self.scrollArea_2.setAutoFillBackground(False)
+ self.scrollArea_2.setFrameShape(QtWidgets.QFrame.WinPanel)
+ self.scrollArea_2.setFrameShadow(QtWidgets.QFrame.Raised)
+ self.scrollArea_2.setMidLineWidth(0)
+ self.scrollArea_2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
+ self.scrollArea_2.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+ self.scrollArea_2.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow)
+ self.scrollArea_2.setWidgetResizable(False)
+ self.scrollArea_2.setObjectName("scrollArea_2")
+ self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
+ self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 300, 12000))
+ self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
+ self.pushButton_3 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_2)
+ self.pushButton_3.setGeometry(QtCore.QRect(0, 0, 300, 80))
+ self.pushButton_3.setLayoutDirection(QtCore.Qt.LeftToRight)
+ self.pushButton_3.setAutoFillBackground(False)
+ self.pushButton_3.setText("")
+ self.pushButton_3.setIconSize(QtCore.QSize(80, 80))
+ self.pushButton_3.setObjectName("pushButton_3")
+ self.label_2 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
+ self.label_2.setGeometry(QtCore.QRect(220, 10, 72, 15))
+ self.label_2.setObjectName("label_2")
+ self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
+ self.horizontalLayout.addWidget(self.scrollArea_2)
+ self.frame_2 = QtWidgets.QFrame(Form)
+ self.frame_2.setMinimumSize(QtCore.QSize(500, 500))
+ self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
+ self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
+ self.frame_2.setObjectName("frame_2")
+ self.verticalLayout = QtWidgets.QVBoxLayout(self.frame_2)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+ self.label_remark_2 = QtWidgets.QLabel(self.frame_2)
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_remark_2.setFont(font)
+ self.label_remark_2.setText("")
+ self.label_remark_2.setObjectName("label_remark_2")
+ self.horizontalLayout_3.addWidget(self.label_remark_2)
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.horizontalLayout_3.addItem(spacerItem)
+ self.toolButton_2 = QtWidgets.QToolButton(self.frame_2)
+ self.toolButton_2.setObjectName("toolButton_2")
+ self.horizontalLayout_3.addWidget(self.toolButton_2)
+ self.verticalLayout.addLayout(self.horizontalLayout_3)
+ self.line_4 = QtWidgets.QFrame(self.frame_2)
+ self.line_4.setLineWidth(6)
+ self.line_4.setFrameShape(QtWidgets.QFrame.VLine)
+ self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.line_4.setObjectName("line_4")
+ self.verticalLayout.addWidget(self.line_4)
+ self.line_5 = QtWidgets.QFrame(self.frame_2)
+ self.line_5.setFrameShape(QtWidgets.QFrame.HLine)
+ self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.line_5.setObjectName("line_5")
+ self.verticalLayout.addWidget(self.line_5)
+ self.message_2 = QtWidgets.QTextBrowser(self.frame_2)
+ self.message_2.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
+ self.message_2.setStyleSheet("background-color: #F5F5F5;")
+ self.message_2.setObjectName("message_2")
+ self.verticalLayout.addWidget(self.message_2)
+ self.textEdit_2 = QtWidgets.QTextEdit(self.frame_2)
+ font = QtGui.QFont()
+ font.setPointSize(15)
+ self.textEdit_2.setFont(font)
+ self.textEdit_2.setTabStopWidth(80)
+ self.textEdit_2.setCursorWidth(1)
+ self.textEdit_2.setObjectName("textEdit_2")
+ self.verticalLayout.addWidget(self.textEdit_2)
+ self.line_6 = QtWidgets.QFrame(self.frame_2)
+ self.line_6.setFrameShape(QtWidgets.QFrame.HLine)
+ self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.line_6.setObjectName("line_6")
+ self.verticalLayout.addWidget(self.line_6)
+ self.btn_sendMsg_2 = QtWidgets.QPushButton(self.frame_2)
+ font = QtGui.QFont()
+ font.setFamily("黑体")
+ font.setPointSize(15)
+ font.setBold(False)
+ font.setWeight(50)
+ self.btn_sendMsg_2.setFont(font)
+ self.btn_sendMsg_2.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
+ self.btn_sendMsg_2.setMouseTracking(False)
+ self.btn_sendMsg_2.setAutoFillBackground(False)
+ self.btn_sendMsg_2.setStyleSheet("QPushButton {\n"
+ " background-color: #f0f0f0;\n"
+ " \n"
+ " padding: 10px;\n"
+ " color:rgb(5,180,104);\n"
+ "}")
+ self.btn_sendMsg_2.setIconSize(QtCore.QSize(40, 40))
+ self.btn_sendMsg_2.setCheckable(False)
+ self.btn_sendMsg_2.setAutoDefault(True)
+ self.btn_sendMsg_2.setObjectName("btn_sendMsg_2")
+ self.verticalLayout.addWidget(self.btn_sendMsg_2)
+ self.verticalLayout.setStretch(0, 1)
+ self.verticalLayout.setStretch(2, 3)
+ self.verticalLayout.setStretch(3, 20)
+ self.verticalLayout.setStretch(4, 1)
+ self.verticalLayout.setStretch(6, 1)
+ self.horizontalLayout.addWidget(self.frame_2)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "Form"))
+ self.label_2.setText(_translate("Form", "TextLabel"))
+ self.toolButton_2.setText(_translate("Form", "..."))
+ self.textEdit_2.setHtml(_translate("Form",
+ "\n"
+ "
\n"
+ "
"))
+ self.btn_sendMsg_2.setText(_translate("Form", "发送"))
diff --git a/app/Ui/chat/myinfo.zip b/app/Ui/chat/myinfo.zip
new file mode 100644
index 0000000..71c3be3
Binary files /dev/null and b/app/Ui/chat/myinfo.zip differ
diff --git a/app/Ui/contact/analysis/charts - 副本.zip b/app/Ui/contact/analysis/charts - 副本.zip
new file mode 100644
index 0000000..ce2d1b1
Binary files /dev/null and b/app/Ui/contact/analysis/charts - 副本.zip differ
diff --git a/app/Ui/contact/emotion/emotion.py b/app/Ui/contact/emotion/emotion.py
new file mode 100644
index 0000000..e7c6a9e
--- /dev/null
+++ b/app/Ui/contact/emotion/emotion.py
@@ -0,0 +1,164 @@
+import numpy as np
+import pandas as pd
+from pyecharts import options as opts
+from pyecharts.charts import Line
+
+from ....DataBase import data
+
+
+def load_data(wxid):
+ message_data = data.get_text_by_num(wxid, 1)
+ df = pd.DataFrame(message_data, columns=['message', 'date'])
+ # print(df)
+ d = df.groupby('date')
+ for key, value in d:
+ yield key, value['message'].values
+
+
+import snownlp
+
+
+def emotion_analysis(wxid):
+ dates = []
+ emotions = []
+ for date, messages in load_data(wxid):
+ dates.append(date)
+ s = 0
+ for msg in messages:
+ val = snownlp.SnowNLP(msg).sentiments
+ s += val
+ emotions.append(s / len(messages))
+ emotions = np.array(emotions)
+ emotions = np.around(emotions, 3) * 100
+ return dates, emotions
+
+
+def plot_emotion(wxid):
+ """
+ 画图
+ """
+ datas, emotions = emotion_analysis(wxid) # 获取数据
+ max_ = max(emotions)
+ min_ = min(emotions)
+ c = (
+ Line()
+ .add_xaxis(
+ xaxis_data=datas,
+ )
+ .add_yaxis(
+ series_name="情感趋势",
+ is_smooth=True,
+ y_axis=emotions,
+ markpoint_opts=opts.MarkPointOpts(
+ data=[
+ opts.MarkPointItem(type_="max", name="最大值", value=int(max_ * 100) / 100),
+ opts.MarkPointItem(type_="min", name="最小值", value=int(min_ * 100) / 100),
+ ]
+ ),
+ markline_opts=opts.MarkLineOpts(
+ data=[opts.MarkLineItem(type_="average", name="平均值")]
+ ),
+ )
+ .set_global_opts(
+ yaxis_opts=opts.AxisOpts(
+ max_=max_,
+ min_=min_,
+ ),
+ xaxis_opts=opts.AxisOpts(
+ type_='time'
+ ),
+ axispointer_opts=opts.AxisPointerOpts(
+ is_show=True, link=[{"xAxisIndex": "all"}]
+ ),
+ )
+ .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
+ .render("./data/聊天统计/emotion_chart.html")
+ )
+
+
+from PyQt5.QtCore import *
+from PyQt5.QtGui import *
+from PyQt5.QtWebEngineWidgets import QWebEngineView
+from PyQt5.QtWidgets import *
+
+from . import emotionUi
+
+
+class EmotionController(QWidget, emotionUi.Ui_Dialog):
+ def __init__(self, username, parent=None):
+ super().__init__(parent)
+ self.ta_username = username
+
+ # self.setStyleSheet('''QWidget{background-color:rgb(240, 240, 240);}''')
+ # 加载动画
+ self.center()
+ self.label_01()
+ # 防止卡死,新建线程处理数据
+ self.Thread = LoadData(username)
+ self.Thread.okSignal.connect(self.initUI)
+ self.Thread.start()
+
+ def center(self): # 定义一个函数使得窗口居中显示
+ # 获取屏幕坐标系
+ screen = QDesktopWidget().screenGeometry()
+ # 获取窗口坐标系
+ size = self.geometry()
+ newLeft = (screen.width() - size.width()) / 2
+ newTop = (screen.height() - size.height()) / 2
+ self.move(int(newLeft), int(newTop))
+
+ def label_01(self):
+ w = self.size().width()
+ h = self.size().height()
+ self.label = QLabel(self)
+ self.label.setGeometry(w // 2, h // 2, 100, 100)
+ self.label.setToolTip("这是一个标签")
+ self.m_movie()
+
+ def m_movie(self):
+ movie = QMovie("./app/data/bg.gif")
+ self.label.setMovie(movie)
+ movie.start()
+
+ def initUI(self):
+ self.label.setVisible(False)
+ # self.setStyleSheet('''QWidget{background-color:rgb(244, 244, 244);}''')
+ main_box = QHBoxLayout(self)
+ self.browser1 = QWebEngineView()
+ self.browser1.load(QUrl('file:///data/聊天统计/emotion_chart.html'))
+ # self.browser1.setStyleSheet('''QWidget{background-color:rgb(240, 240, 240);}''')
+
+ splitter1 = QSplitter(Qt.Vertical)
+
+ splitter1.addWidget(self.browser1)
+ main_box.addWidget(splitter1)
+ self.setLayout(main_box)
+
+ def setBackground(self):
+ palette = QPalette()
+ pix = QPixmap("./app/data/bg.png")
+ pix = pix.scaled(self.width(), self.height(), Qt.IgnoreAspectRatio, Qt.SmoothTransformation) # 自适应图片大小
+ palette.setBrush(self.backgroundRole(), QBrush(pix)) # 设置背景图片
+ # palette.setColor(self.backgroundRole(), QColor(192, 253, 123)) # 设置背景颜色
+ self.setPalette(palette)
+
+
+class LoadData(QThread):
+ """
+ 发送信息线程
+ """
+ okSignal = pyqtSignal(int)
+
+ def __init__(self, ta_u, parent=None):
+ super().__init__(parent)
+ self.ta_username = ta_u
+
+ def run(self):
+ plot_emotion(self.ta_username)
+ self.okSignal.emit(10)
+
+
+if __name__ == '__main__':
+ # wxid = 'wxid_8piw6sb4hvfm22'
+ wxid = 'wxid_wt2vsktnu4z022'
+ load_data(wxid)
diff --git a/app/Ui/contact/emotion/emotionUi.py b/app/Ui/contact/emotion/emotionUi.py
new file mode 100644
index 0000000..c989dbd
--- /dev/null
+++ b/app/Ui/contact/emotion/emotionUi.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'emotionUi.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
+
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(400, 300)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
diff --git a/app/Ui/mainwindow.py b/app/Ui/mainwindow.py
new file mode 100644
index 0000000..d978cde
--- /dev/null
+++ b/app/Ui/mainwindow.py
@@ -0,0 +1,126 @@
+# -*- 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, QtWidgets
+
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ MainWindow.setObjectName("MainWindow")
+ MainWindow.resize(1280, 779)
+ 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.StyledPanel)
+ self.frame_info.setFrameShadow(QtWidgets.QFrame.Sunken)
+ self.frame_info.setObjectName("frame_info")
+ self.verticalLayoutWidget = QtWidgets.QWidget(self.frame_info)
+ self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 190, 61, 271))
+ self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
+ self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
+ self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
+ self.verticalLayout_2.setSpacing(0)
+ self.verticalLayout_2.setObjectName("verticalLayout_2")
+ self.btn_chat = QtWidgets.QPushButton(self.verticalLayoutWidget)
+ self.btn_chat.setMinimumSize(QtCore.QSize(0, 60))
+ self.btn_chat.setStyleSheet("QPushButton {background-color: rgb(240,240,240);}\n"
+ " QPushButton:hover{background-color: rgb(209,209,209);}\n"
+ " ")
+ self.btn_chat.setObjectName("btn_chat")
+ self.verticalLayout_2.addWidget(self.btn_chat)
+ self.btn_contact = QtWidgets.QPushButton(self.verticalLayoutWidget)
+ self.btn_contact.setMinimumSize(QtCore.QSize(0, 60))
+ self.btn_contact.setStyleSheet("QPushButton {background-color: rgb(240,240,240);}\n"
+ " QPushButton:hover{background-color: rgb(209,209,209);}\n"
+ " ")
+ self.btn_contact.setObjectName("btn_contact")
+ self.verticalLayout_2.addWidget(self.btn_contact)
+ self.btn_myinfo = QtWidgets.QPushButton(self.verticalLayoutWidget)
+ self.btn_myinfo.setMinimumSize(QtCore.QSize(60, 60))
+ self.btn_myinfo.setStyleSheet("QPushButton {background-color: rgb(240,240,240);}\n"
+ " QPushButton:hover{background-color: rgb(209,209,209);}\n"
+ " ")
+ self.btn_myinfo.setObjectName("btn_myinfo")
+ self.verticalLayout_2.addWidget(self.btn_myinfo)
+ self.btn_about = QtWidgets.QPushButton(self.verticalLayoutWidget)
+ self.btn_about.setMinimumSize(QtCore.QSize(60, 60))
+ self.btn_about.setStyleSheet("QPushButton {background-color: rgb(240,240,240);}\n"
+ " QPushButton:hover{background-color: rgb(209,209,209);}\n"
+ " ")
+ self.btn_about.setObjectName("btn_about")
+ self.verticalLayout_2.addWidget(self.btn_about)
+ self.verticalLayout_2.setStretch(0, 1)
+ self.verticalLayout_2.setStretch(1, 1)
+ self.verticalLayout_2.setStretch(2, 1)
+ self.verticalLayout_2.setStretch(3, 1)
+ self.myavatar = QtWidgets.QLabel(self.frame_info)
+ self.myavatar.setGeometry(QtCore.QRect(5, 40, 70, 70))
+ self.myavatar.setObjectName("myavatar")
+ self.horizontalLayout.addWidget(self.frame_info)
+ self.frame_main = QtWidgets.QFrame(self.centralwidget)
+ self.frame_main.setMinimumSize(QtCore.QSize(1120, 720))
+ self.frame_main.setLayoutDirection(QtCore.Qt.LeftToRight)
+ self.frame_main.setFrameShape(QtWidgets.QFrame.Box)
+ self.frame_main.setFrameShadow(QtWidgets.QFrame.Raised)
+ self.frame_main.setObjectName("frame_main")
+ self.horizontalLayout.addWidget(self.frame_main)
+ 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)
+ self.menu.setObjectName("menu")
+ self.menu_2 = QtWidgets.QMenu(self.menubar)
+ self.menu_2.setObjectName("menu_2")
+ 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)
+ self.action.setObjectName("action")
+ 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.menubar.addAction(self.menu_F.menuAction())
+ self.menubar.addAction(self.menu.menuAction())
+ self.menubar.addAction(self.menu_2.menuAction())
+
+ self.retranslateUi(MainWindow)
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+ def retranslateUi(self, MainWindow):
+ _translate = QtCore.QCoreApplication.translate
+ MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
+ self.btn_chat.setText(_translate("MainWindow", "聊天"))
+ self.btn_contact.setText(_translate("MainWindow", "联系人"))
+ self.btn_myinfo.setText(_translate("MainWindow", "我的"))
+ self.btn_about.setText(_translate("MainWindow", "关于"))
+ self.myavatar.setText(_translate("MainWindow", "avatar"))
+ self.menu_F.setTitle(_translate("MainWindow", "文件(F)"))
+ self.menu.setTitle(_translate("MainWindow", "编辑"))
+ self.menu_2.setTitle(_translate("MainWindow", "帮助"))
+ self.action_3.setText(_translate("MainWindow", "保存"))
+ self.action_4.setText(_translate("MainWindow", "退出"))
+ self.action.setText(_translate("MainWindow", "关于"))
diff --git a/app/Ui/userinfo/userinfo.py b/app/Ui/userinfo/userinfo.py
new file mode 100644
index 0000000..8435ff4
--- /dev/null
+++ b/app/Ui/userinfo/userinfo.py
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+"""
+@File : contact.py
+@Author : Shuaikang Zhou
+@Time : 2022/12/13 15:07
+@IDE : Pycharm
+@Version : Python3.10
+@comment : ···
+"""
+from PyQt5.QtCore import *
+from PyQt5.QtGui import *
+from PyQt5.QtWidgets import *
+
+from .userinfoUi import *
+from ...DataBase import data
+
+
+class MyinfoController(QWidget, Ui_Dialog):
+ exitSignal = pyqtSignal()
+ urlSignal = pyqtSignal(QUrl)
+
+ # username = ''
+
+ def __init__(self, Me, parent=None):
+ super(MyinfoController, self).__init__(parent)
+ self.setupUi(self)
+ self.setWindowTitle('WeChat')
+ self.setWindowIcon(QIcon('./app/data/icon.png'))
+ self.Me = Me
+ self.initui()
+
+ def initui(self):
+ self.myinfo = data.get_myInfo()
+ avatar = self.Me.my_avatar
+ pixmap = QPixmap(avatar).scaled(80, 80) # 按指定路径找到图片
+ self.label_avatar.setPixmap(pixmap) # 在label上显示图片
+ self.label_name.setText(self.myinfo['name'])
+ self.label_wxid.setText('微信号:' + self.myinfo['username'])
+ city = f"地区:{self.myinfo['province']}{self.myinfo['city']}"
+ self.label_city.setText(city)
diff --git a/app/Ui/userinfo/userinfoUi.py b/app/Ui/userinfo/userinfoUi.py
new file mode 100644
index 0000000..81b47fd
--- /dev/null
+++ b/app/Ui/userinfo/userinfoUi.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'userinfoUi.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(1120, 720)
+ Dialog.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
+ Dialog.setAutoFillBackground(False)
+ self.frame_2 = QtWidgets.QFrame(Dialog)
+ self.frame_2.setGeometry(QtCore.QRect(0, 0, 1120, 720))
+ self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
+ self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
+ self.frame_2.setObjectName("frame_2")
+ self.horizontalLayoutWidget = QtWidgets.QWidget(self.frame_2)
+ self.horizontalLayoutWidget.setGeometry(QtCore.QRect(340, 60, 291, 82))
+ self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
+ self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
+ self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.label_avatar = QtWidgets.QLabel(self.horizontalLayoutWidget)
+ self.label_avatar.setMinimumSize(QtCore.QSize(80, 80))
+ self.label_avatar.setObjectName("label_avatar")
+ self.horizontalLayout.addWidget(self.label_avatar)
+ self.verticalLayout = QtWidgets.QVBoxLayout()
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.label_name = QtWidgets.QLabel(self.horizontalLayoutWidget)
+ self.label_name.setObjectName("label_name")
+ self.verticalLayout.addWidget(self.label_name)
+ self.label_wxid = QtWidgets.QLabel(self.horizontalLayoutWidget)
+ self.label_wxid.setObjectName("label_wxid")
+ self.verticalLayout.addWidget(self.label_wxid)
+ self.label_city = QtWidgets.QLabel(self.horizontalLayoutWidget)
+ self.label_city.setObjectName("label_city")
+ self.verticalLayout.addWidget(self.label_city)
+ self.horizontalLayout.addLayout(self.verticalLayout)
+ self.horizontalLayout.setStretch(0, 1)
+ self.horizontalLayout.setStretch(1, 3)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.label_avatar.setText(_translate("Dialog", "TextLabel"))
+ self.label_name.setText(_translate("Dialog", "TextLabel"))
+ self.label_wxid.setText(_translate("Dialog", "TextLabel"))
+ self.label_city.setText(_translate("Dialog", "TextLabel"))
diff --git a/app/Ui/userinfo/userinfoUi.ui b/app/Ui/userinfo/userinfoUi.ui
new file mode 100644
index 0000000..50d0fd8
--- /dev/null
+++ b/app/Ui/userinfo/userinfoUi.ui
@@ -0,0 +1,91 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 1120
+ 720
+
+
+
+ ArrowCursor
+
+
+ Dialog
+
+
+ false
+
+
+
+
+ 0
+ 0
+ 1120
+ 720
+
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
+
+ 340
+ 60
+ 291
+ 82
+
+
+
+ -
+
+
+
+ 80
+ 80
+
+
+
+ TextLabel
+
+
+
+ -
+
+
-
+
+
+ TextLabel
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+
+
+
+
+
+
+
+
+