WeChatMsg/app/Ui/chat/addContact/addContact.py
2023-01-11 13:04:19 +08:00

90 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- 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)