合并联系人ui,加快启动速度 #271

This commit is contained in:
shuaikangzhou 2024-01-05 21:13:54 +08:00
parent 1bb5c97274
commit 814f678f48
4 changed files with 42 additions and 6 deletions

View File

@ -54,7 +54,9 @@ class ContactInfo(QWidget, Ui_Form):
self.toDocxAct.triggered.connect(self.output) self.toDocxAct.triggered.connect(self.output)
self.toCSVAct.triggered.connect(self.output) self.toCSVAct.triggered.connect(self.output)
self.toTxtAct.triggered.connect(self.output) self.toTxtAct.triggered.connect(self.output)
def set_contact(self,contact:Contact):
self.view_userinfo.set_contact(contact)
self.contact = contact
def toolButton_show(self): def toolButton_show(self):
self.toolButton_output.showMenu() self.toolButton_output.showMenu()

View File

@ -1,5 +1,7 @@
from typing import List
from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QLineEdit from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QLineEdit, QLabel
from app.DataBase import micro_msg_db, misc_db from app.DataBase import micro_msg_db, misc_db
from app.components import ContactQListWidgetItem, ScrollBar from app.components import ContactQListWidgetItem, ScrollBar
@ -62,7 +64,9 @@ class ContactWindow(QWidget, Ui_Form):
self.setStyleSheet(Stylesheet) self.setStyleSheet(Stylesheet)
self.init_ui() self.init_ui()
self.contacts = [[], []] self.contacts = [[], []]
self.contacts_list:List[Contact] = []
self.show_contacts() self.show_contacts()
self.contact_info_window = None
def init_ui(self): def init_ui(self):
search_action = QAction(self.lineEdit) search_action = QAction(self.lineEdit)
@ -120,8 +124,10 @@ class ContactWindow(QWidget, Ui_Form):
contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG)
self.listWidget.addItem(contact_item) self.listWidget.addItem(contact_item)
self.listWidget.setItemWidget(contact_item, contact_item.widget) self.listWidget.setItemWidget(contact_item, contact_item.widget)
contact_info_window = ContactInfo(contact) self.contacts_list.append(contact)
self.stackedWidget.addWidget(contact_info_window) if self.contact_info_window is None:
self.contact_info_window = ContactInfo(contact)
self.stackedWidget.addWidget(self.contact_info_window)
def setCurrentIndex(self, row): def setCurrentIndex(self, row):
# print(row) # print(row)
@ -131,7 +137,8 @@ class ContactWindow(QWidget, Ui_Form):
item = self.listWidget.item(row) item = self.listWidget.item(row)
item.select() item.select()
self.now_index = row self.now_index = row
self.stackedWidget.setCurrentIndex(row) # self.stackedWidget.setCurrentIndex(row)
self.contact_info_window.set_contact(self.contacts_list[row])
class ShowContactThread(QThread): class ShowContactThread(QThread):

View File

@ -1,6 +1,7 @@
from PyQt5.QtGui import QPixmap from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *
from app.person import Contact
from app.util.region_conversion import conversion_region_to_chinese from app.util.region_conversion import conversion_region_to_chinese
from .userinfoUi import Ui_Frame from .userinfoUi import Ui_Frame
from ...Icon import Icon from ...Icon import Icon
@ -34,3 +35,28 @@ class UserinfoController(QWidget, Ui_Frame):
pixmap = QPixmap(Icon.Woman_Icon_path) pixmap = QPixmap(Icon.Woman_Icon_path)
self.l_gender.setPixmap(pixmap) self.l_gender.setPixmap(pixmap)
# self.l_gender.setText() # self.l_gender.setText()
def set_contact(self,contact:Contact):
self.l_remark.setText(contact.remark)
self.l_avatar.setPixmap(contact.avatar)
self.l_nickname.setText(f'昵称:{contact.nickName}')
self.l_username.setText(f'微信号:{contact.alias}')
self.lineEdit.setText(contact.remark)
# self.l_region.setVisible(False)
self.l_contact_label.setText(contact.label_name)
if contact.detail:
self.l_signature.setText(contact.detail.get('signature'))
self.l_tel.setText(contact.detail.get('telephone'))
region = contact.detail.get('region')
area = conversion_region_to_chinese(region)
self.l_region.setText(f'地区:{area}')
gender_code = contact.detail.get('gender')
gender = ''
pixmap = QPixmap()
if gender_code == 1:
gender = ''
pixmap = QPixmap(Icon.Man_Icon_path)
elif gender_code == 2:
gender = ''
pixmap = QPixmap(Icon.Woman_Icon_path)
self.l_gender.setPixmap(pixmap)
# self.l_gender.setText()

View File

@ -66,8 +66,9 @@ class ViewController(QWidget):
self.viewMainWindow.setWindowTitle(f"留痕-{version}") self.viewMainWindow.setWindowTitle(f"留痕-{version}")
self.viewMainWindow.show() self.viewMainWindow.show()
end = time.time() end = time.time()
print('ok', '本次加载用了', end - start, 's')
self.viewMainWindow.init_ui() self.viewMainWindow.init_ui()
print('ok', '本次加载用了', end - start, 's')
except Exception as e: except Exception as e:
print(f"Exception: {e}") print(f"Exception: {e}")
logger.error(traceback.print_exc()) logger.error(traceback.print_exc())