WeChatMsg/app/Ui/chat/addContact/addContact.py

90 lines
2.8 KiB
Python
Raw Normal View History

2023-01-11 13:04:19 +08:00
# -*- 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)