def UserButtonCicked(self): UserId = self.UserIdEdit.text() if (UserId == ''): print( QMessageBox.warning(self, "警告", "有字段为空", QMessageBox.Yes, QMessageBox.Yes)) else: # 组装json数据 data = {'messageId': 5002, 'userNum': UserId} # SingletonTcpSocket().connect("10.2.8.3", 9999) # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ') str = json.dumps(data) print('json dumps:%s' % str) SingletonTcpSocket().send(bytes(str, encoding="utf8")) # 获取json数据 str = SingletonTcpSocket().recv(1024) print('recv from server:%s' % str) # 解析json数据 resData = json.loads(str.decode('utf8')) if (resData['errorCode'] == 0): print( QMessageBox.information(self, "提醒", "鉴权用户成功!", QMessageBox.Yes, QMessageBox.Yes)) self.User_signal.emit(UserId) self.close() # self.clearEdit() else: print( QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes)) return
def jumpToButtonClicked(self): if (self.pageEdit.text().isdigit()): self.currentPage = int(self.pageEdit.text()) if (self.currentPage > self.totalPage): self.currentPage = self.totalPage if (self.currentPage <= 1): self.currentPage = 1 else: self.currentPage = 1 index = (self.currentPage - 1) * self.pageRecord self.pageEdit.setText(str(self.currentPage)) # self.recordQuery(index) if (self.searchEdit.text() == ""): data = {"messageId": 2001, "start": index, "end": index + 10} print(data) send_str = json.dumps(data) SingletonTcpSocket().send(bytes(send_str, encoding="utf8")) recv_str = json.loads( SingletonTcpSocket().recv(10240).decode('utf8')) self.recv_dictionaries = recv_str['item'] print(self.recv_dictionaries) self.disply(self.currentPage, self.recv_dictionaries) self.setButtonStatus() else: self.totalRecord = self.disply_condition(self.recv_dictionaries) self.setButtonStatus() return
def prevButtonClicked(self): if self.currentPage <= 1: return self.currentPage -= 1 self.pageEdit.setText(str(self.currentPage)) # index = (self.currentPage - 1) * self.pageRecord # self.recordQuery(index,currentPage) if (self.searchEdit.text() == ""): self.totalPage = int( (self.totalRecord + self.pageRecord - 1) / self.pageRecord) label = "/" + str(int(self.totalPage)) + "页" self.pageLabel.setText(label) data = { "messageId": 2001, "start": (self.currentPage - 1) * 10, "end": (self.currentPage) * 10 } send_str = json.dumps(data) SingletonTcpSocket().sock.send(bytes(send_str, encoding="utf8")) recv_str = json.loads( SingletonTcpSocket().sock.recv(10240).decode('utf8')) self.recv_dictionaries = recv_str['item'] self.totalRecord = self.recv_str['total'] print(self.recv_dictionaries) self.disply(self.currentPage, self.recv_dictionaries) self.setButtonStatus() else: conditionChoice = self.condisionComboBox.currentText() if (conditionChoice == "按书名查询"): conditionChoice = 'bookName' type = 1 elif (conditionChoice == "按书号查询"): conditionChoice = 'bookId' type = 0 elif (conditionChoice == "按作者查询"): conditionChoice = 'bookAuthor' type = 2 else: conditionChoice = 'Publisher' temp = self.searchEdit.text() data = {"messageId": 2003, "bookSearch": temp, "type": type} print(data) send_str = json.dumps(data) SingletonTcpSocket().sock.send(bytes(send_str, encoding="utf8")) recv_str = json.loads( SingletonTcpSocket().sock.recv(10240).decode('utf8')) self.recv_dictionaries = recv_str['item'] print(self.recv_dictionaries) self.totalRecord = self.disply_condition(self.recv_dictionaries) self.setButtonStatus() self.getPageCount() s = "/" + str(int(self.totalPage)) + "页" self.pageLabel.setText(s) return
def addBookButtonCicked(self): bookName = self.bookNameEdit.text() bookId = self.bookIdEdit.text() authName = self.authNameEdit.text() bookCategory = self.categoryComboBox.currentText() publisher = self.publisherEdit.text() publishTime = self.publishTime.text() addBookNum = self.addNumEdit.text() if (bookName == "" or bookId == "" or authName == "" or bookCategory == "" or publisher == "" or publishTime == "" or addBookNum == ""): print( QMessageBox.warning(self, "警告", "有字段为空,添加失败", QMessageBox.Yes, QMessageBox.Yes)) return else: addBookNum = int(addBookNum) # 组装json数据 data = { 'messageId': 2002, 'bookId': bookId, 'bookName': bookName, 'bookAuthor': authName, 'bookAddNumber': addBookNum, 'bookCategory': bookCategory, 'bookPublisher': publisher, 'bookPublicationDate': publishTime } # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ') # SingletonTcpSocket().connect("10.2.8.96", 9999) str = json.dumps(data) print('json dumps:%s' % str) SingletonTcpSocket().send(bytes(str, encoding="utf8")) # 获取json数据 str = SingletonTcpSocket().recv(1024) print('recv from server:%s' % str) # 解析json数据 resData = json.loads(str.decode('utf8')) if (resData['errorCode'] == 0): print( QMessageBox.information(self, "提示", "添加书籍成功!", QMessageBox.Yes, QMessageBox.Yes)) self.add_book_success_signal.emit() self.close() self.clearEdit() else: print( QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes)) return
def signInCheck(self): IP = self.lineEdit0.text() studentId = self.lineEdit1.text() password = self.lineEdit2.text() if (studentId == "" or password == "" or IP == ""): print( QMessageBox.warning(self, "警告", "表单不可为空!", QMessageBox.Yes, QMessageBox.Yes)) return if not SingletonTcpSocket().connect(IP, 9999): print( QMessageBox.warning(self, "提示", "网络连接异常,请检查网络", QMessageBox.Yes, QMessageBox.Yes)) return # 组装json数据 data = { 'messageId': 1001, 'adminId': studentId, 'adminPasswd': password, 'adminName': '' } # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ') str = json.dumps(data) print('json dumps:%s' % str) # 发送接收消息 if (SingletonTcpSocket().send(bytes(str, encoding="utf8")) > 0): # 获取json数据 str = SingletonTcpSocket().recv(4096) print('recv from server:%s' % str) if not str: print( QMessageBox.information(self, "提示", '数据获取不正确', QMessageBox.Yes, QMessageBox.Yes)) return # 解析json数据 resData = json.loads(str.decode('utf8')) if ('errorCode' in resData.keys() and resData['errorCode'] == 0): self.is_admin_signal.emit() else: if ('errorDetail' in resData.keys()): print( QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes)) else: print( QMessageBox.information(self, "提示", '数据获取格式错误', QMessageBox.Yes, QMessageBox.Yes)) return
def SignUp(self): studentId = self.studentIdEdit.text() studentName = self.studentNameEdit.text() sex = self.sexEdit.text() remark = self.studentReamrkEdit.text() if (studentId == "" or studentName == "" or sex == ""): print( QMessageBox.warning(self, "警告", "表单不可为空(备注除外),请重新输入", QMessageBox.Yes, QMessageBox.Yes)) return elif (sex != "男" and sex != "女"): print( QMessageBox.warning(self, "警告", "性别输入男/女,请重新输入", QMessageBox.Yes, QMessageBox.Yes)) return else: # 需要处理逻辑,1.账号已存在;2.密码不匹配;3.插入user表 if (sex == '男'): userSex = '0' else: userSex = '1' # 组装json数据 data = { 'messageId': 5001, 'userNum': studentId, 'userName': studentName, 'userSex': userSex, 'userRemark': remark } # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ') SingletonTcpSocket().connect("10.2.8.3", 9999) str = json.dumps(data) print('json dumps:%s' % str) SingletonTcpSocket().send(bytes(str, encoding="utf8")) # 获取json数据 str = SingletonTcpSocket().recv(1024) print('recv from server:%s' % str) # 解析json数据 resData = json.loads(str.decode('utf8')) if (resData['errorCode'] == 0): print( QMessageBox.information(self, "提醒", "您已成功添加用户!", QMessageBox.Yes, QMessageBox.Yes)) self.close() else: print( QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes)) return
def returnedQuery(self): # #组装json数据 data = {'messageId' : 4002, 'userNum' : self.studentId} # SingletonTcpSocket().connect("10.2.8.96", 9999) str = json.dumps(data) print('json dumps:%s' % str) SingletonTcpSocket().send(bytes(str, encoding="utf8")) # 获取json数据 str = SingletonTcpSocket().recv(40960) print('recv from server:str%s' % str) # 解析json数据 resData = json.loads(str.decode('utf8')) str_first = resData['item'] print('recv from server:str_first%s' % str_first) if (resData['errorCode'] == 0): line = 0 for one in str_first: if one and 'bookName' in one.keys(): self.returnedQueryModel.setItem(line, 0, QStandardItem(one['bookName'])) if one and 'bookId' in one.keys(): self.returnedQueryModel.setItem(line, 1, QStandardItem(one['bookId'])) if one and 'bookAuthor' in one.keys(): self.returnedQueryModel.setItem(line, 2, QStandardItem(one['bookAuthor'])) if one and 'bookCategory' in one.keys(): self.returnedQueryModel.setItem(line, 3, QStandardItem(one['bookCategory'])) if one and 'bookPublisher' in one.keys(): self.returnedQueryModel.setItem(line, 4, QStandardItem(one['bookPublisher'])) if one and 'bookPublicationDate' in one.keys(): self.returnedQueryModel.setItem(line, 5, QStandardItem(one['bookPublicationDate'])) if one and 'borDate' in one.keys(): self.returnedQueryModel.setItem(line, 6, QStandardItem(one['borDate'])) if one and 'retDate' in one.keys(): self.returnedQueryModel.setItem(line, 7, QStandardItem(one['retDate'])) if one and 'borRetDateLimit' in one.keys(): self.returnedQueryModel.setItem(line, 8, QStandardItem(one['borRetDateLimit'])) print('222') line += 1 else: print(QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes)) return
def deleteUserclicked(self): UserId = self.UserIdEdit.text() if (UserId == ""): print( QMessageBox.warning(self, "警告", "请输入要删除的用户", QMessageBox.Yes, QMessageBox.Yes)) return #直接删了········································ else: # 组装json数据 data = {'messageId': 5003, 'userNum': UserId} # SingletonTcpSocket().connect("192.168.126.130", 9999) # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ') str = json.dumps(data) print('json dumps:%s' % str) SingletonTcpSocket().send(bytes(str, encoding="utf8")) # 获取json数据 str = SingletonTcpSocket().recv(1024) print('recv from server:%s' % str) # 解析json数据 resData = json.loads(str.decode('utf8')) if (resData['errorCode'] == 0): print( QMessageBox.information(self, "提醒", "删除用户成功!", QMessageBox.Yes, QMessageBox.Yes)) # self.updateUI() self.close() else: print( QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes)) return
def SignUp(self): studentId = self.studentIdLineEdit.text() studentName = self.studentNameLineEdit.text() password = self.passwordLineEdit.text() confirmPassword = self.passwordConfirmLineEdit.text() if (studentId == "" or password == "" or confirmPassword == ""): print( QMessageBox.warning(self, "警告", "表单不可为空(姓名除外),请重新输入", QMessageBox.Yes, QMessageBox.Yes)) return else: if (confirmPassword != password): print( QMessageBox.warning(self, "警告", "两次输入密码不一致,请重新输入", QMessageBox.Yes, QMessageBox.Yes)) return # 组装json数据 data = { 'messageId': 1002, 'adminId': studentId, 'adminPasswd': password, 'adminName': studentName } # SingletonTcpSocket().connect("10.2.8.96",9999) # str = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ') str = json.dumps(data) print('json dumps:%s' % str) # 发送接收消息 if (SingletonTcpSocket().send(bytes(str, encoding="utf8")) > 0): # 获取json数据 str = SingletonTcpSocket().recv(1024) print('recv from server:%s' % str) if not str: print( QMessageBox.information(self, "提示", '数据获取不正确', QMessageBox.Yes, QMessageBox.Yes)) return # 解析json数据 resData = json.loads(str.decode('utf8')) if ('errorCode' in resData.keys() and resData['errorCode'] == 0): print( QMessageBox.information(self, "提醒", "您已成功注册账号!请登录", QMessageBox.Yes, QMessageBox.Yes)) else: if ('errorDetail' in resData.keys()): print( QMessageBox.information(self, "提示", resData['errorDetail'], QMessageBox.Yes, QMessageBox.Yes)) else: print( QMessageBox.information(self, "提示", '数据获取格式错误', QMessageBox.Yes, QMessageBox.Yes)) return
def setUpUI(self): self.layout = QVBoxLayout() self.Hlayout1 = QHBoxLayout() self.Hlayout2 = QHBoxLayout() # Hlayout1控件的初始化 self.searchEdit = QLineEdit() self.searchEdit.setFixedHeight(32) font = QFont() font.setPixelSize(15) self.searchEdit.setFont(font) self.searchButton = QPushButton("查询") self.searchButton.setFixedHeight(32) self.searchButton.setFont(font) self.searchButton.setIcon(QIcon(QPixmap("./images/search.png"))) self.condisionComboBox = QComboBox() searchCondision = ['按书名查询', '按书号查询', '按作者查询'] self.condisionComboBox.setFixedHeight(32) self.condisionComboBox.setFont(font) self.condisionComboBox.addItems(searchCondision) self.Hlayout1.addWidget(self.searchEdit) self.Hlayout1.addWidget(self.searchButton) self.Hlayout1.addWidget(self.condisionComboBox) # Hlayout2初始化 self.jumpToLabel = QLabel("跳转到第") self.pageEdit = QLineEdit() self.pageEdit.setFixedWidth(30) s = "/" + str(self.totalPage) + "页" self.pageLabel = QLabel(s) self.jumpToButton = QPushButton("跳转") self.prevButton = QPushButton("前一页") self.prevButton.setFixedWidth(60) self.backButton = QPushButton("后一页") self.backButton.setFixedWidth(60) Hlayout = QHBoxLayout() Hlayout.addWidget(self.jumpToLabel) Hlayout.addWidget(self.pageEdit) Hlayout.addWidget(self.pageLabel) Hlayout.addWidget(self.jumpToButton) Hlayout.addWidget(self.prevButton) Hlayout.addWidget(self.backButton) widget = QWidget() widget.setLayout(Hlayout) widget.setFixedWidth(300) self.Hlayout2.addWidget(widget) # tableView # 序号,书名,书号,作者,分类,出版社,出版时间,库存,剩余可借 # self.db = QSqlDatabase.addDatabase("QSQLITE") # self.db.setDatabaseName('./db/LibraryManagement.db') # self.db.open() self.tableView = QTableView() self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers) # self.queryModel = QSqlQueryModel() # SingletonTcpSocket().connect("10.2.8.3", 9999) data = { "messageId": 2001, "start": self.currentPage * 10, "end": (self.currentPage + 1) * 10 } send_str = json.dumps(data) # 发送接收消息 # self.recv_str = '' # self.recv_dictionaries = '' if (SingletonTcpSocket().send(bytes(send_str, encoding="utf8")) > 0): # 获取json数据 strs = SingletonTcpSocket().recv(40960) if strs: self.recv_str = json.loads(strs.decode('utf8')) print('recv from server:%s' % strs) if self.recv_str and ('item' in self.recv_str.keys()) and ( 'total' in self.recv_str.keys()): self.recv_dictionaries = self.recv_str['item'] self.totalRecord = self.recv_str['total'] print(self.recv_dictionaries) self.queryModel = QStandardItemModel(10, 9) self.searchButtonClicked() self.tableView.setModel(self.queryModel) if self.recv_dictionaries: self.disply(self.currentPage, self.recv_dictionaries) self.queryModel.setHeaderData(0, Qt.Horizontal, "书名") self.queryModel.setHeaderData(1, Qt.Horizontal, "书号") self.queryModel.setHeaderData(2, Qt.Horizontal, "作者") self.queryModel.setHeaderData(3, Qt.Horizontal, "分类") self.queryModel.setHeaderData(4, Qt.Horizontal, "出版社") self.queryModel.setHeaderData(5, Qt.Horizontal, "出版时间") self.queryModel.setHeaderData(6, Qt.Horizontal, "库存") self.queryModel.setHeaderData(7, Qt.Horizontal, "剩余可借") self.queryModel.setHeaderData(8, Qt.Horizontal, "总借阅次数") self.layout.addLayout(self.Hlayout1) self.layout.addWidget(self.tableView) self.layout.addLayout(self.Hlayout2) self.setLayout(self.layout) self.searchButton.clicked.connect(self.searchButtonClicked) self.prevButton.clicked.connect(self.prevButtonClicked) self.backButton.clicked.connect(self.backButtonClicked) self.jumpToButton.clicked.connect(self.jumpToButtonClicked) self.searchEdit.returnPressed.connect(self.searchButtonClicked)