123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- from enum import Enum, unique
- from PyQt5.QtCore import QSize, Qt
- from PyQt5.QtGui import QFont
- from PyQt5.QtWidgets import QDialog, QMessageBox, QListWidgetItem, QLineEdit, QLabel, QSizePolicy
- # 导入取车确认界面
- import ui.pickupUi as pickupUi
- # 取车密码
- pickup_password = "123456"
- # 窗口返回值
- @unique
- class ResultReturn(Enum):
- DEFAULT = 0 # 默认
- OK = 1 # 成功
- CANCEL = 2 # 取消
- FAIL = 3 # 失败
- ERROR = 4 # 出错
- class PickupWindow(QDialog, pickupUi.Ui_Dialog):
- def __init__(self,tipstr): # 默认使用空列表传值
- super(PickupWindow, self).__init__()
- self.setupUi(self)
- self.setWindowTitle("密码确认")
- if tipstr is not None:
- self.input_passwd_label.setText(tipstr)
- # 设置初始窗口大小
- # self.resize(QSize(500, 300))
- # 取消帮助按钮显示
- self.setWindowFlags(Qt.WindowCloseButtonHint)
- # 隐藏密码
- self.password_lineEdit.setEchoMode(QLineEdit.Password)
- # 设置属性为模态框
- self.setWindowModality(Qt.ApplicationModal)
- # self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
- # 居中打印车位信息
- # self.pickup_verticalLayout.setAlignment(Qt.AlignCenter)
- # 居中显示密码框
- self.horizontalLayout_2.setAlignment(Qt.AlignCenter)
- # 绑定界面按钮点击动作
- self.cancel_pushButton.clicked.connect(self.cancel_event)
- self.confirm_pushButton.clicked.connect(self.confirm_event)
- # 显示信息
- # self.info = info
- # 窗口返回值
- self.res = ResultReturn.DEFAULT
- # # 车位信息字典
- # self.space_info_dict = info
- # # 获取主窗体传来的车位信息
- # def get_data_dict(self, space_info_dict):
- # self.space_info_dict = space_info_dict
- # 取消取车事件
- def cancel_event(self):
- self.hide()
- # 确认取车事件
- def confirm_event(self):
- # 重置返回值
- self.setResult(ResultReturn.DEFAULT)
- # 获取密码输入
- password = self.password_lineEdit.text()
- if password != pickup_password:
- self.password_lineEdit.clear()
- QMessageBox.warning(self, "提示", "密码错误,请重新输入", QMessageBox.Yes)
- else:
- self.setResult(ResultReturn.OK)
- self.hide()
- # 窗口显示处理
- def showEvent(self, event):
- # 重置返回值
- self.setResult(ResultReturn.DEFAULT)
- # 聚焦密码框
- self.password_lineEdit.setFocus()
- self.password_lineEdit.clear()
- # 自适应显示车位信息
- # self.draw_info()
- # 窗口隐藏处理
- def hideEvent(self, event):
- self.clearFocus()
- self.password_lineEdit.clear()
- # 窗口关闭处理
- def closeEvent(self, event):
- results = QMessageBox.question(self, '退出', '你确定要退出吗?', QMessageBox.Yes | QMessageBox.No,
- QMessageBox.No) # "退出"代表的是弹出框的标题,"你确认退出.."表示弹出框的内容
- if results == QMessageBox.Yes:
- event.accept() # 接受关闭事件
- else:
- event.ignore() # 忽略关闭事件
- # 设置窗口返回结果
- def setResult(self, res):
- self.res = res
- # 获取窗口返回结果
- def getResult(self):
- return self.res
- # 设置显示信息
- def set_info(self, info):
- # 需显示信息
- self.info = info
- # 获取显示信息
- def get_info(self):
- return self.info
- # 获取中文释义
- def get_name(self, key):
- if key == 'id':
- return '下标'
- elif key == 'table_id':
- return '表编号'
- elif key == 'floor':
- return '楼层'
- elif key == 'height':
- return '限高'
- elif key == 'car_number':
- return '车牌号'
- elif key == 'statu':
- return '车位状态'
- elif key == 'plate_color':
- return '号牌颜色'
- elif key == 'plate_type':
- return '号牌类型'
- elif key == 'plate_confidence':
- return '号牌可信度'
- elif key == 'recognition_time':
- return '识别时间'
- elif key == 'primary_key':
- return '唯一码'
- else:
- return '未知'
- # 反向获取数据库字段名
- def get_tableName(self, key):
- if key == '下标':
- return 'id'
- elif key == '表编号':
- return 'table_id'
- elif key == '楼层':
- return 'floor'
- elif key == '限高':
- return 'height'
- elif key == '车牌号':
- return 'car_number'
- elif key == '车位状态':
- return 'statu'
- elif key == '号牌颜色':
- return 'plate_color'
- elif key == '号牌类型':
- return 'plate_type'
- elif key == '号牌可信度':
- return 'plate_confidence'
- elif key == '识别时间':
- return 'recognition_time'
- elif key == '唯一码':
- return 'primary_key'
- else:
- return '未知'
- # 动态绘制信息
- def draw_info(self):
- font = QFont("楷体")
- n_len_scale = int(80 / len(self.info))
- n_size = 20 if n_len_scale < 20 else n_len_scale
- font.setPointSize(n_size)
- for i in self.info:
- qLabel = QLabel()
- qLabel.setFont(font)
- qLabel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
- # qLabel.setAlignment(Qt.AlignLeft) # 左对齐
- qLabel.setAlignment(Qt.AlignCenter) # 居中对齐
- qLabel.setText(i)
- self.pickup_verticalLayout.addWidget(qLabel)
- # self.pickup_listWidget.clear()
- # for i in self.info:
- # qListWidgetItem = QListWidgetItem()
- # qListWidgetItem.setSizeHint(QSize(50, 65))
- # qListWidgetItem.setText(i)
- # self.pickup_listWidget.addItem(qListWidgetItem)
|