balance.py 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. from ui.own.frame_theme import MyFrame
  4. from utils.qt import QtWidgets, QtCore, Qt
  5. class Balance(MyFrame):
  6. def setupUi(self, Balance):
  7. self.balance = MyFrame(Balance)
  8. self.balance_layout = QtWidgets.QGridLayout(self.balance)
  9. self.balance_layout.setContentsMargins(5, 5, 5, 5)
  10. self.balance_layout.setSpacing(0)
  11. self.line_groupbox = QtWidgets.QGroupBox(self.balance)
  12. self.line_groupbox.setTitle("采样线故障(红色:故障)")
  13. self.line_groupbox_layout = QtWidgets.QHBoxLayout(self.line_groupbox)
  14. self.line_qscrollarea = QtWidgets.QScrollArea(self.line_groupbox)
  15. self.line_qscrollarea.setWidgetResizable(True)
  16. self.line_qscrollarea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
  17. self.line_groupbox_layout.addWidget(self.line_qscrollarea)
  18. self.line_qwidget = QtWidgets.QWidget()
  19. self.line_qscrollarea.setWidget(self.line_qwidget)
  20. self.line_qscrollarea_layout = QtWidgets.QGridLayout(self.line_qwidget)
  21. self.line_qscrollarea_layout.setContentsMargins(3, 3, 3, 3)
  22. self.line_qscrollarea_layout.setSpacing(0)
  23. for i in range(15):
  24. bmu_label = QtWidgets.QLabel("CMU" + str(i + 1))
  25. bmu_label.setAlignment(Qt.AlignCenter)
  26. self.line_qscrollarea_layout.addWidget(bmu_label, i, 0, 1, 1)
  27. for i in range(15):
  28. for j in range(72):
  29. qline_lebal = QtWidgets.QLineEdit("C" + str(j + 1))
  30. qline_lebal.setAlignment(Qt.AlignCenter)
  31. qline_lebal.setFixedWidth(50)
  32. qline_lebal.setReadOnly(True)
  33. self.line_qscrollarea_layout.addWidget(qline_lebal, i, j + 1, 1, 1)
  34. # self.line_groupbox = QtWidgets.QGroupBox(self.balance)
  35. # self.line_groupbox.setTitle("采样线故障(红:故障)")
  36. # self.line_groupbox_layout = QtWidgets.QVBoxLayout(self.line_groupbox)
  37. # self.line_qscrollarea = QtWidgets.QScrollArea(self.line_groupbox)
  38. # self.line_qscrollarea.setWidgetResizable(True)
  39. # # self.line_qscrollarea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
  40. # self.line_groupbox_layout.addWidget(self.line_qscrollarea)
  41. # self.line_qwidget = QtWidgets.QWidget()
  42. # self.line_qscrollarea.setWidget(self.line_qwidget)
  43. # self.line_qscrollarea_layout = QtWidgets.QGridLayout(self.line_qwidget)
  44. # self.line_qscrollarea_layout.setContentsMargins(3, 3, 3, 3)
  45. # self.line_qscrollarea_layout.setSpacing(0)
  46. # for i in range(15):
  47. # bmu_label = QtWidgets.QLabel("CMU" + str(i + 1))
  48. # bmu_label.setAlignment(Qt.AlignCenter)
  49. # self.line_qscrollarea_layout.addWidget(bmu_label, 0, i, 1, 1)
  50. # for i in range(15):
  51. # for j in range(72):
  52. # qline_lebal = QtWidgets.QLineEdit("C" + str(j + 1))
  53. # qline_lebal.setAlignment(Qt.AlignCenter)
  54. # qline_lebal.setReadOnly(True)
  55. # qline_lebal.setFixedWidth(50)
  56. # self.line_qscrollarea_layout.addWidget(qline_lebal, j + 1, i, 1, 1)
  57. # to do
  58. # set_edt_bg(self.line_qscrollarea_layout.itemAtPosition(2, 0).widget(), QtGui.QColor(Qt.red))
  59. # set_edt_bg(self.line_qscrollarea_layout.itemAtPosition(3, 1).widget(), QtGui.QColor(Qt.red))
  60. # self.line_status_widget = QtWidgets.QWidget()
  61. # self.line_status_widget_layout = QtWidgets.QHBoxLayout(self.line_status_widget)
  62. # self.line_status_widget_layout.setContentsMargins(0, 0, 0, 0)
  63. # self.line_status_widget_layout.setSpacing(0)
  64. # self.line_status_widget_layout.addStretch()
  65. # self.qline_lebal = QtWidgets.QLineEdit("")
  66. # self.qline_lebal.setAlignment(Qt.AlignCenter)
  67. # self.qline_lebal.setReadOnly(True)
  68. # set_edt_bg(self.qline_lebal, QtGui.QColor(Qt.white))
  69. # self.line_status_widget_layout.addWidget(self.qline_lebal)
  70. # self.lb_lebal = QtWidgets.QLabel(" 无故障 ")
  71. # self.line_status_widget_layout.addWidget(self.lb_lebal)
  72. # self.line_status_widget_layout.addStretch()
  73. # self.line_groupbox_layout.addWidget(self.line_status_widget)
  74. # self.line_status_widget_2 = QtWidgets.QWidget()
  75. # self.line_status_widget_2_layout = QtWidgets.QHBoxLayout(self.line_status_widget_2)
  76. # self.line_status_widget_2_layout.setContentsMargins(0, 0, 0, 0)
  77. # self.line_status_widget_2_layout.setSpacing(0)
  78. # self.line_status_widget_2_layout.addStretch()
  79. # self.qline_bal = QtWidgets.QLineEdit("")
  80. # self.qline_bal.setAlignment(Qt.AlignCenter)
  81. # self.qline_bal.setReadOnly(True)
  82. # set_edt_bg(self.qline_bal, QtGui.QColor(Qt.red))
  83. # self.line_status_widget_2_layout.addWidget(self.qline_bal)
  84. # self.lb_bal = QtWidgets.QLabel("采样线故障")
  85. # self.line_status_widget_2_layout.addWidget(self.lb_bal)
  86. # self.line_status_widget_2_layout.addStretch()
  87. # self.line_groupbox_layout.addWidget(self.line_status_widget_2)
  88. self.balance_layout.addWidget(self.line_groupbox, 0, 0, 1, 1)
  89. self.on_off_groupbox = QtWidgets.QGroupBox(self.balance)
  90. self.on_off_groupbox.setTitle("均衡开关(绿色:开启)")
  91. self.on_off_groupbox_layout = QtWidgets.QHBoxLayout(self.on_off_groupbox)
  92. self.on_off_qscrollarea = QtWidgets.QScrollArea(self.on_off_groupbox)
  93. self.on_off_qscrollarea.setWidgetResizable(True)
  94. self.on_off_qscrollarea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
  95. self.on_off_groupbox_layout.addWidget(self.on_off_qscrollarea)
  96. self.on_off_qwidget = QtWidgets.QWidget()
  97. self.on_off_qscrollarea.setWidget(self.on_off_qwidget)
  98. self.on_off_qscrollarea_layout = QtWidgets.QGridLayout(self.on_off_qwidget)
  99. self.on_off_qscrollarea_layout.setContentsMargins(3, 3, 3, 3)
  100. self.on_off_qscrollarea_layout.setSpacing(0)
  101. for i in range(15):
  102. bmu_label = QtWidgets.QLabel("CMU" + str(i + 1))
  103. bmu_label.setAlignment(Qt.AlignCenter)
  104. self.on_off_qscrollarea_layout.addWidget(bmu_label, i, 0, 1, 1)
  105. for i in range(15):
  106. for j in range(72):
  107. qon_off_lebal = QtWidgets.QLineEdit("C" + str(j + 1))
  108. qon_off_lebal.setAlignment(Qt.AlignCenter)
  109. qon_off_lebal.setFixedWidth(50)
  110. qon_off_lebal.setReadOnly(True)
  111. self.on_off_qscrollarea_layout.addWidget(qon_off_lebal, i, j + 1, 1, 1)
  112. # set_edt_bg(self.on_off_qscrollarea_layout.itemAtPosition( 0 + 0,1).widget(), QtGui.QColor(Qt.red))
  113. # set_edt_bg(self.on_off_qscrollarea_layout.itemAtPosition( 0 + 2, 6).widget(), QtGui.QColor(Qt.red))
  114. # set_edt_bg(self.on_off_qscrollarea_layout.itemAtPosition(3, 1).widget(), QtGui.QColor(Qt.red))
  115. # self.on_off_widget = QtWidgets.QWidget()
  116. # self.on_off_widget_layout = QtWidgets.QVBoxLayout(self.on_off_widget)
  117. # self.on_off_widget_layout.setContentsMargins(0, 0, 0, 0)
  118. # self.on_off_widget_layout.setSpacing(0)
  119. # self.on_off_widget_layout.addStretch()
  120. # self.qline_l = QtWidgets.QLineEdit("")
  121. # self.qline_l.setAlignment(Qt.AlignCenter)
  122. # self.qline_l.setReadOnly(True)
  123. # set_edt_bg(self.qline_l, QtGui.QColor(Qt.white))
  124. # self.on_off_widget_layout.addWidget(self.qline_l)
  125. # self.lb_l = QtWidgets.QLabel("关闭均衡")
  126. # self.lb_l.setAlignment(Qt.AlignCenter)
  127. # self.on_off_widget_layout.addWidget(self.lb_l)
  128. # self.qline_ll = QtWidgets.QLineEdit("")
  129. # self.qline_ll.setAlignment(Qt.AlignCenter)
  130. # self.qline_ll.setReadOnly(True)
  131. # set_edt_bg(self.qline_ll, QtGui.QColor(Qt.green))
  132. # self.on_off_widget_layout.addWidget(self.qline_ll)
  133. # self.lb_ll = QtWidgets.QLabel("打开均衡")
  134. # self.lb_ll.setAlignment(Qt.AlignCenter)
  135. # self.on_off_widget_layout.addWidget(self.lb_ll)
  136. # self.on_off_widget_layout.addStretch()
  137. # self.on_off_groupbox_layout.addWidget(self.on_off_widget)
  138. self.balance_layout.addWidget(self.on_off_groupbox, 0, 1, 1, 1)
  139. # self.balance_control_groupbox = QtWidgets.QGroupBox(self.balance)
  140. # self.balance_control_groupbox.setTitle("均衡强制控制(选中:控制)")
  141. # self.balance_control_groupbox_layout = QtWidgets.QVBoxLayout(self.balance_control_groupbox)
  142. # self.balance_control_qscrollarea = QtWidgets.QScrollArea(self.balance_control_groupbox)
  143. # self.balance_control_qscrollarea.setWidgetResizable(True)
  144. # # self.balance_control_qscrollarea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
  145. # self.balance_control_groupbox_layout.addWidget(self.balance_control_qscrollarea)
  146. # self.balance_control_qwidget = QtWidgets.QWidget()
  147. # self.balance_control_qscrollarea.setWidget(self.balance_control_qwidget)
  148. # self.balance_control_qscrollarea_layout = QtWidgets.QGridLayout(self.balance_control_qwidget)
  149. # self.balance_control_qscrollarea_layout.setContentsMargins(3, 3, 3, 3)
  150. # self.balance_control_qscrollarea_layout.setSpacing(0)
  151. # for i in range(15):
  152. # bmu_label = QtWidgets.QLabel("CMU" + str(i + 1))
  153. # bmu_label.setAlignment(Qt.AlignCenter)
  154. # self.balance_control_qscrollarea_layout.addWidget(bmu_label, 0, i, 1, 1)
  155. # for i in range(15):
  156. # for j in range(72):
  157. # qbalance_control_widget = QtWidgets.QWidget()
  158. # qbalance_control_widget_layout = QtWidgets.QHBoxLayout(qbalance_control_widget)
  159. # qbalance_control_widget_layout.setContentsMargins(5, 5, 5, 5)
  160. # qbalance_control_widget_layout.setSpacing(0)
  161. # qbalance_control_lebal = QtWidgets.QLineEdit("C" + str(j + 1))
  162. # qbalance_control_lebal.setAlignment(Qt.AlignCenter)
  163. # qbalance_control_lebal.setReadOnly(True)
  164. # qbalance_control_lebal.setFixedWidth(50)
  165. # qbalance_control_widget_layout.addWidget(qbalance_control_lebal)
  166. # qbalance_control_checkbox = QtWidgets.QCheckBox()
  167. # qbalance_control_widget_layout.addWidget(qbalance_control_checkbox)
  168. # self.balance_control_qscrollarea_layout.addWidget(qbalance_control_widget, j + 1, i, 1, 1)
  169. self.balance_control_groupbox = QtWidgets.QGroupBox(self.balance)
  170. self.balance_control_groupbox.setTitle("均衡强制控制(选中:控制)")
  171. self.balance_control_groupbox_layout = QtWidgets.QHBoxLayout(self.balance_control_groupbox)
  172. self.balance_control_qscrollarea = QtWidgets.QScrollArea(self.balance_control_groupbox)
  173. self.balance_control_qscrollarea.setWidgetResizable(True)
  174. self.balance_control_qscrollarea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
  175. self.balance_control_groupbox_layout.addWidget(self.balance_control_qscrollarea)
  176. self.balance_control_qwidget = QtWidgets.QWidget()
  177. self.balance_control_qscrollarea.setWidget(self.balance_control_qwidget)
  178. self.balance_control_qscrollarea_layout = QtWidgets.QGridLayout(self.balance_control_qwidget)
  179. self.balance_control_qscrollarea_layout.setContentsMargins(3, 3, 3, 3)
  180. self.balance_control_qscrollarea_layout.setSpacing(0)
  181. for i in range(15):
  182. bmu_label = QtWidgets.QLabel("CMU" + str(i + 1))
  183. bmu_label.setAlignment(Qt.AlignCenter)
  184. self.balance_control_qscrollarea_layout.addWidget(bmu_label, i, 0, 1, 1)
  185. for i in range(15):
  186. for j in range(72):
  187. qbalance_control_widget = QtWidgets.QWidget()
  188. qbalance_control_widget_layout = QtWidgets.QHBoxLayout(qbalance_control_widget)
  189. qbalance_control_widget_layout.setContentsMargins(5, 5, 5, 5)
  190. qbalance_control_widget_layout.setSpacing(0)
  191. qbalance_control_lebal = QtWidgets.QLineEdit("C" + str(j + 1))
  192. qbalance_control_lebal.setAlignment(Qt.AlignCenter)
  193. qbalance_control_lebal.setReadOnly(True)
  194. qbalance_control_lebal.setFixedWidth(50)
  195. qbalance_control_widget_layout.addWidget(qbalance_control_lebal)
  196. qbalance_control_checkbox = QtWidgets.QCheckBox()
  197. qbalance_control_widget_layout.addWidget(qbalance_control_checkbox)
  198. self.balance_control_qscrollarea_layout.addWidget(qbalance_control_widget, i, j + 1, 1, 1)
  199. self.balance_layout.addWidget(self.balance_control_groupbox, 1, 0, 1, 1)
  200. # self.balance_control_qscrollarea_layout.itemAtPosition(0 + 0, 1).widget().layout().itemAt(1).widget().stateChanged.connect(lambda state = self.balance_control_qscrollarea_layout.itemAtPosition(0 + 0, 1).widget().layout().itemAt(1).widget(), cmu_id = i + 1, cell_id = j + 1: self._balance_ctl(state, cmu_id, cell_id))
  201. # set_edt_bg(self.on_off_qscrollarea_layout.itemAtPosition( 0 + 0,1).widget(), QtGui.QColor(Qt.red))
  202. # self.balance_control_qscrollarea_layout.itemAtPosition(2, 3).widget().layout().itemAt(1).widget().setCheckState(Qt.Checked)
  203. # self.balance_control_qscrollarea_layout.itemAtPosition(0, 1).widget().layout().itemAt(1).widget().setCheckState(Qt.Checked)
  204. self.balance_fault_groupbox = QtWidgets.QGroupBox(self.balance)
  205. self.balance_fault_groupbox.setTitle("均衡故障(红色:故障)")
  206. self.balance_fault_groupbox_layout = QtWidgets.QHBoxLayout(self.balance_fault_groupbox)
  207. self.balance_fault_qscrollarea = QtWidgets.QScrollArea(self.balance_fault_groupbox)
  208. self.balance_fault_qscrollarea.setWidgetResizable(True)
  209. self.balance_fault_qscrollarea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
  210. self.balance_fault_groupbox_layout.addWidget(self.balance_fault_qscrollarea)
  211. self.balance_fault_qwidget = QtWidgets.QWidget()
  212. self.balance_fault_qscrollarea.setWidget(self.balance_fault_qwidget)
  213. self.balance_fault_qscrollarea_layout = QtWidgets.QGridLayout(self.balance_fault_qwidget)
  214. self.balance_fault_qscrollarea_layout.setContentsMargins(3, 3, 3, 3)
  215. self.balance_fault_qscrollarea_layout.setSpacing(0)
  216. for i in range(15):
  217. bmu_label = QtWidgets.QLabel("CMU" + str(i + 1))
  218. bmu_label.setAlignment(Qt.AlignCenter)
  219. self.balance_fault_qscrollarea_layout.addWidget(bmu_label, i, 0, 1, 1)
  220. for i in range(15):
  221. for j in range(72):
  222. qbalance_fault_lebal = QtWidgets.QLineEdit("C" + str(j + 1))
  223. qbalance_fault_lebal.setAlignment(Qt.AlignCenter)
  224. qbalance_fault_lebal.setReadOnly(True)
  225. qbalance_fault_lebal.setFixedWidth(50)
  226. self.balance_fault_qscrollarea_layout.addWidget(qbalance_fault_lebal, i, j + 1, 1, 1)
  227. # set_edt_bg(self.balance_fault_qscrollarea_layout.itemAtPosition( 0 + 0,1).widget(), QtGui.QColor(Qt.red))
  228. # set_edt_bg(self.balance_fault_qscrollarea_layout.itemAtPosition( 0 + 2, 6).widget(), QtGui.QColor(Qt.red))
  229. # self.balance_fault_widget = QtWidgets.QWidget()
  230. # self.balance_fault_widget_layout = QtWidgets.QVBoxLayout(self.balance_fault_widget)
  231. # self.balance_fault_widget_layout.setContentsMargins(0, 0, 0, 0)
  232. # self.balance_fault_widget_layout.setSpacing(0)
  233. # self.balance_fault_widget_layout.addStretch()
  234. # self.edt_fault = QtWidgets.QLineEdit("")
  235. # self.edt_fault.setAlignment(Qt.AlignCenter)
  236. # self.edt_fault.setReadOnly(True)
  237. # set_edt_bg(self.edt_fault, QtGui.QColor(Qt.white))
  238. # self.balance_fault_widget_layout.addWidget(self.edt_fault)
  239. # self.lb_fault = QtWidgets.QLabel("无故障")
  240. # self.lb_fault.setAlignment(Qt.AlignCenter)
  241. # self.balance_fault_widget_layout.addWidget(self.lb_fault)
  242. # self.edt_faultl = QtWidgets.QLineEdit("")
  243. # self.edt_faultl.setAlignment(Qt.AlignCenter)
  244. # self.edt_faultl.setReadOnly(True)
  245. # set_edt_bg(self.edt_faultl, QtGui.QColor(Qt.red))
  246. # self.balance_fault_widget_layout.addWidget(self.edt_faultl)
  247. # self.lb_faultl = QtWidgets.QLabel("均衡故障")
  248. # self.lb_faultl.setAlignment(Qt.AlignCenter)
  249. # self.balance_fault_widget_layout.addWidget(self.lb_faultl)
  250. # self.balance_fault_widget_layout.addStretch()
  251. # self.balance_fault_groupbox_layout.addWidget(self.balance_fault_widget)
  252. self.balance_layout.addWidget(self.balance_fault_groupbox, 1, 1, 1, 1)
  253. QtCore.QMetaObject.connectSlotsByName(Balance)