class Obj: def __init__(self, dataSocket, address, filepath): self.dataSocket = dataSocket self.address = address self.ui = QUiLoader().load(filepath) def launch(self): self.ui.show() self.ui.exec_()
class MessageBox: def __init__(self, message, title): self.ui = QUiLoader().load('src/client_ui/messageBox.ui') self.ui.message.setText(message) self.ui.setWindowTitle(title) self.ui.setWindowModality(Qt.ApplicationModal) self.ui.confirm.clicked.connect(self.handleConfirm) def handleConfirm(self): self.ui.close() pass def launch(self): self.ui.show() self.ui.exec_()
class StartUp(QtCore.QObject): friendList = [] chat_ = {} def __init__(self): super().__init__() self.username = '' qfile_ui = QFile("E:\\Py workshop\\grdKeShe\\UI\\login.ui") qfile_ui.open(QFile.ReadOnly) qfile_ui.close() self.ui = QUiLoader().load(qfile_ui) self.ui.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.ui.user.setScaledContents(True) self.ui.pass_pic.setScaledContents(True) self.ui.user.setPixmap(QPixmap('.\\static\\user.png')) self.ui.pass_pic.setPixmap(QPixmap('.\\static\\password.png')) self.ui.login.setStyleSheet('QPushButton {background-color: #1296DB; border: none; color: #FFFFFF}') self.ui.regist.setStyleSheet('QPushButton {color: #8A8A8A}') self.ui.useraccount.setStyleSheet('QLineEdit {background-color: #1296DB; border-width: 1 }') self.ui.show() self.ui.login.clicked.connect(self.userLogin) self.ui.regist.clicked.connect(self.showReg) self.ui.closebu.clicked.connect(self.stop) qfile_main = QFile("E:\\Py workshop\\grdKeShe\\UI\\mainwindow.ui") qfile_main.open(QFile.ReadOnly) qfile_main.close() self.ui_main = QUiLoader().load(qfile_main) self.ui_main.addFriend.clicked.connect(self.addFriend) self.ui_main.profile_photo.setPixmap(QPixmap('.\\static\\default.png')) self.ui_main.profile_photo.setScaledContents(True) self.ui_main.listWidget.itemClicked.connect(self.chat) self.ui_main.send.clicked.connect(self.sendmessage) self.ui_main.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.ui_main.closeB.clicked.connect(self.logout) ui_file = QFile("E:\\Py workshop\\grdKeShe\\UI\\searchNot.ui") ui_file.open(QFile.ReadOnly) ui_file.close() self.ui_notice = QUiLoader().load(ui_file) self.ui_notice.search.clicked.connect(self.search) reg_file = QFile("E:\\Py workshop\\grdKeShe\\UI\\Register.ui") reg_file.open(QFile.ReadOnly) reg_file.close() self.ui_reg = QUiLoader().load(reg_file) self.ui_reg.submit.clicked.connect(self.userReg) self.ui_reg.passconf.editingFinished.connect(self.checkPass) self.ui_reg.passconf_tip.setScaledContents(True) def userLogin(self): username = self.ui.useraccount.text() self.username = username password = self.ui.password.text() msg = slots.UserLogin(username, password) self.ui.notice.setText(msg) sleep(2) self.ui.notice.setText("") if msg == 'ok': ifexist = os.path.exists(str(username)) if not ifexist: os.mkdir(str(username)) msg = slots.ReceiveMessage(self.username) for i in msg: mea = json.loads(i) print(mea) slots.StoreChat(username, mea['sender'], i) self.friendList = slots.GetStatus(self.username) print(self.friendList) for user in self.friendList: self.ui_main.listWidget.addItem(user[0]) self.ui_main.show() self.ui.close() def addFriend(self): self.ui_notice.show() self.ui_notice.exec_() def search(self): target = self.ui_notice.searchBox.text() msg = slots.AddFriend(self.username, target) self.ui_notice.resultNot.setText(msg) sleep(2) self.ui_notice.resultNot.setText("") def showReg(self): self.ui_reg.show() def userReg(self): msg = slots.UserReg(self.ui_reg.username.text(), self.ui_reg.password.text(), self.ui_reg.phone.text()) if msg['code'] == 0: self.ui_reg.notice.setText(msg['msg'] + ',your id is:' + str(msg['id'])) def checkPass(self): if self.ui_reg.password.text() != self.ui_reg.passconf.text(): self.ui_reg.submit.setEnabled(False) self.ui_reg.passconf_tip.setPixmap(QPixmap('E:\\Py workshop\\grdKeShe\\static\\warning.png')) else: self.ui_reg.submit.setEnabled(True) self.ui_reg.passconf_tip.setPixmap(QPixmap('E:\\Py workshop\\grdKeShe\\static\\ok.png')) def chat(self): item = self.ui_main.listWidget.currentItem() self.ui_main.othername.setText(item.text()) self.ui_main.chatview.clear() for i in self.friendList: if self.ui_main.othername.text() == i[0]: receive = i[1] msg = slots.loadChat(self.username, receive) for i in msg: j = json.loads(i) self.ui_main.chatview.addItem(item.text()+":"+j['message']+'['+j['time']+']') def sendmessage(self): receive = '' addr = '' message = self.ui_main.sendbox.toPlainText() for i in self.friendList: if self.ui_main.othername.text() == i[0]: receive = i[1] addr = i[2] code, me = slots.SendMessage(self.username, receive, addr, message) if code == 0: self.ui_main.chatview.addItem( '我:' + message + '[' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + ']') slots.StoreChat(self.username, receive, me) self.ui_main.sendbox.clear() else: self.ui_main.chatview.addItem('发送失败' + me) def logout(self): slots.Logout(self.username) exit() def stop(self): exit()