main_window_XmSgj.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import sys
  2. sys.path.append("..")
  3. import mytool.db_helper.db_operation as spmng
  4. from PyQt5.QtCore import QSize, QTimer, Qt
  5. from PyQt5.QtGui import QFont, QBrush, QColor, QPixmap
  6. from PyQt5.QtWidgets import QApplication, QMainWindow, QListWidgetItem, QListWidget, QLabel
  7. from ui.ui import Ui_MainWindow
  8. class MainWindow(QMainWindow, Ui_MainWindow):
  9. def __init__(self, display_number,unit,task_type,db_config):
  10. super().__init__()
  11. self.setupUi(self)
  12. self.label.setText("上古街智能立体停车库取车排队信息")
  13. self.setWindowFlags(Qt.FramelessWindowHint)
  14. self.task_type = task_type
  15. self.image_label.setPixmap(QPixmap('./image/log.jpg'))
  16. self.image_label.setScaledContents(True)
  17. self.image_label.setMaximumHeight(140)
  18. self.image_label.setMaximumWidth(600)
  19. self.db =spmng.DBOperation(db_config['db_ip'],db_config['db_port'],db_config['db_name'],db_config['db_user'],db_config['db_password'])
  20. self.display_number = display_number
  21. unit_dict = {'A':[11,12,13],'B':[21,22,23,24,25],'C':[31,32]}
  22. self.unit_list = unit_dict[unit]
  23. self.list_widget_dict = {}
  24. self.label_dict = {}
  25. self.command_dict = {}
  26. # 创建listwidget与label 配置多少个单元生成多少对
  27. for i in self.unit_list:
  28. self.list_widget_dict[i] = QListWidget(self)
  29. self.list_widget_dict[i].setStyleSheet("border:5px solid #014F84;")
  30. self.list_widget_dict[i].setObjectName(('list_widget_%d'%(i+1)))
  31. self.process_horizontalLayout.addWidget(self.list_widget_dict[i])
  32. self.label_dict[i] = QLabel(self)
  33. self.label_dict[i].setText(unit+str((i%10)))
  34. self.label_dict[i].setAlignment(Qt.AlignCenter)
  35. self.label_dict[i].setFont(QFont("华文楷体", 60, QFont.Bold))
  36. self.command_dict[i] = []
  37. self.unit_horizontalLayout.addWidget(self.label_dict[i])
  38. self.timer = QTimer()
  39. self.timer.timeout.connect(self.Switch)
  40. self.timer.start(200)
  41. def closeEvent(self, event):
  42. event.accept() # 接受关闭事件
  43. def get_listWidget_item(self, dict):
  44. item = QListWidgetItem()
  45. item.setFont(QFont('微软雅黑', 17, QFont.Bold))
  46. show_str = ""
  47. if dict['type'] == 1:#存车指令
  48. item.setBackground(QColor(185,240,240))
  49. if (dict['statu'] == 0): # 排队
  50. item.setForeground(QColor(80, 80, 80))
  51. show_str = dict['car_number'] + " 排队中,请稍等片刻"
  52. elif (dict['statu'] == 1): # 工作
  53. item.setForeground(QColor('blue'))
  54. show_str = dict['car_number'] + " 存车中,等待存车结束"
  55. elif (dict['statu'] == 2): # 已完成
  56. item.setForeground(QColor('green'))
  57. show_str = dict['car_number'] + " 存车已完成"
  58. elif (dict['statu'] == 3): # 已完成
  59. item.setForeground(QColor('red'))
  60. show_str = dict['car_number'] + " 故障,请联系管理员!"
  61. show_str = "存 "+show_str
  62. elif dict['type'] == 2:#取车指令
  63. item.setBackground(QColor(250,240,200))
  64. if (dict['statu'] == 0): # 排队
  65. item.setForeground(QColor(80, 80, 80))
  66. show_str = dict['car_number'] + " 排队中,请稍等片刻"
  67. elif (dict['statu'] == 1): # 工作
  68. item.setForeground(QColor('blue'))
  69. show_str = dict['car_number'] + " 取车中,等待取车结束"
  70. elif (dict['statu'] == 2): # 已完成
  71. item.setForeground(QColor('green'))
  72. show_str = dict['car_number'] + " 已完成,请到%d号口取车" % (dict["export_id"])
  73. elif (dict['statu'] == 3): # 已完成
  74. item.setForeground(QColor('red'))
  75. show_str = dict['car_number'] + " 故障,请联系管理员!"
  76. show_str = '取 '+ show_str
  77. item.setText(show_str)
  78. return item
  79. def Switch(self):
  80. for i in self.unit_list:
  81. if self.task_type != 0:
  82. t_command_dict = self.db.query_command_all_in_unit_type_and_sort(i,self.task_type)
  83. else:
  84. t_command_dict = self.db.query_command_all_in_unit_and_sort(i)
  85. if self.command_dict[i] != t_command_dict:
  86. self.command_dict[i] = t_command_dict
  87. self.list_widget_dict[i].clear()
  88. for dict in self.command_dict[i]:
  89. if dict['statu'] != 3:
  90. self.list_widget_dict[i].addItem(self.get_listWidget_item(dict))
  91. for dict in self.command_dict[i]:
  92. if dict['statu'] == 3:
  93. self.list_widget_dict[i].addItem(self.get_listWidget_item(dict))