WeChatMsg/app/Ui/chat/group/CreateGroup.py

108 lines
3.5 KiB
Python
Raw Normal View History

2023-01-11 13:04:19 +08:00
# -*- coding: utf-8 -*-
"""
@File : CreateGroup.py
@Author : Shuaikang Zhou
@Time : 2022/12/20 22:55
@IDE : Pycharm
@Version : Python3.10
@comment : ···
"""
from .create_groupUi import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from ....DB import data
import time
class CreateGroupView(QWidget, Ui_Frame):
backSignal = pyqtSignal(str)
gidSignal = pyqtSignal(int)
def __init__(self, username, parent=None):
super(CreateGroupView, self).__init__(parent)
self.setupUi(self)
self.tips.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.back.clicked.connect(self.btnEnterClicked)
self.btn_set_gAvatar.clicked.connect(self.up_avatar)
self.btn_create.clicked.connect(self.create_group)
self.avatar = None
def up_avatar(self):
path, _ = QFileDialog.getOpenFileName(self, 'Open file', r'..', "Image files (*.png;*.jpg)")
if path:
try:
pixmap = QPixmap(path).scaled(80, 80) # 按指定路径找到图片
self.avatar_img.setPixmap(pixmap) # 在label上显示图片
self.avatar = path
except:
self.error.setText('头像不存在')
def create_group(self):
# self.close()
if not self.avatar:
self.error.setText('请上传头像')
return False
name = self.group_name.text()
intro = self.group_intro.toPlainText()
# print(intro,self.username)
flag = data.create_group(
g_name=name,
g_admin=self.username,
g_intro=intro
)
# print('123456')
# print(flag)
if not flag:
self.error.setText('创建失败')
# print('yonghu已经存在')
else:
self.error.setText('创建成功')
self.error.setStyleSheet("color:black")
avatar = data.get_avator(str(flag))
# new_path = '/'.join(avatar.split('/')[:-1])+'/'
# print(avatar)
if '.' in avatar[-10:]:
avatar = '.'.join(avatar.split('.')[:-1])
# print(avatar)
data.mycopyfile(self.avatar, avatar + '.png')
self.tips.setVisible(True)
self.thread = MyThread() # 创建一个线程
self.thread.sec_changed_signal.connect(self._update) # 线程发过来的信号挂接到槽update
self.thread.start()
self.gidSignal.emit(int(flag))
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)