mirror of
https://github.com/LC044/WeChatMsg
synced 2024-11-15 14:31:18 +08:00
90 lines
2.8 KiB
Python
90 lines
2.8 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
@File : addContact.py
|
||
@Author : Shuaikang Zhou
|
||
@Time : 2022/12/17 14:26
|
||
@IDE : Pycharm
|
||
@Version : Python3.10
|
||
@comment : ···
|
||
"""
|
||
from .addContactUi import *
|
||
from PyQt5.QtGui import *
|
||
from PyQt5.QtWidgets import *
|
||
from PyQt5.QtCore import *
|
||
from ....DB import data
|
||
import time
|
||
|
||
|
||
class addControl(QWidget, Ui_Dialog):
|
||
backSignal = pyqtSignal(str)
|
||
contactSignal = pyqtSignal(tuple)
|
||
def __init__(self, username,parent=None):
|
||
super(addControl, self).__init__(parent)
|
||
self.setupUi(self)
|
||
self.tips.setVisible(False)
|
||
self.time.setVisible(False)
|
||
self.setWindowTitle('添加联系人')
|
||
self.setWindowIcon(QIcon('./data/icon.png'))
|
||
self.Username = username
|
||
# self.register_2.clicked.connect(self.login_)
|
||
self.back.clicked.connect(self.btnEnterClicked)
|
||
self.search.clicked.connect(self.search_user)
|
||
self.add_contact.clicked.connect(self.add_contact_)
|
||
self.avatar = None
|
||
|
||
def search_user(self):
|
||
username = self.username.text()
|
||
nickname = self.nickname.text()
|
||
print(username,nickname)
|
||
if data.searchUser(username):
|
||
imgpath = data.get_avator(username)
|
||
print(imgpath)
|
||
pixmap = QPixmap(imgpath).scaled(60, 60) # 按指定路径找到图片
|
||
self.avatar_img.setPixmap(pixmap) # 在label上显示图片
|
||
else:
|
||
self.error.setText('用户不存在')
|
||
|
||
def add_contact_(self):
|
||
username = self.username.text()
|
||
nickname = self.nickname.text()
|
||
flag = data.add_contact(self.Username,username, nickname)
|
||
if flag:
|
||
self.error.setText('添加成功')
|
||
self.contactSignal.emit(flag)
|
||
self.thread = MyThread() # 创建一个线程
|
||
self.thread.sec_changed_signal.connect(self._update) # 线程发过来的信号挂接到槽:update
|
||
self.thread.start()
|
||
else:
|
||
QMessageBox.critical(self, "错误", "用户不存在")
|
||
|
||
|
||
def _update(self, sec):
|
||
self.time.setProperty("value", float(sec))
|
||
# self.time.setDigitCount(sec)
|
||
# self.time.s
|
||
if sec == 0:
|
||
self.btnEnterClicked()
|
||
|
||
def btnEnterClicked(self):
|
||
print("退出添加联系人界面")
|
||
# 中间可以添加处理逻辑
|
||
self.backSignal.emit("back")
|
||
self.close()
|
||
|
||
def btnExitClicked(self):
|
||
print("Exit clicked")
|
||
self.close()
|
||
|
||
|
||
class MyThread(QThread):
|
||
sec_changed_signal = pyqtSignal(int) # 信号类型:int
|
||
|
||
def __init__(self, sec=1000, parent=None):
|
||
super().__init__(parent)
|
||
self.sec = 2 # 默认1000秒
|
||
|
||
def run(self):
|
||
for i in range(self.sec, -1, -1):
|
||
self.sec_changed_signal.emit(i) # 发射信号
|
||
time.sleep(1)
|