From 11ec1bb86ce82fc42b0590a2b655c304df81df01 Mon Sep 17 00:00:00 2001 From: chrin Date: Fri, 16 Feb 2024 16:46:57 +0100 Subject: [PATCH] modified header widget; starting on v1.9.0 --- guiheader.py | 125 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 48 deletions(-) diff --git a/guiheader.py b/guiheader.py index b65dcf9..2c20fdc 100644 --- a/guiheader.py +++ b/guiheader.py @@ -5,7 +5,8 @@ import os from qtpy.QtCore import Qt, QTimer from qtpy.QtGui import QFont from qtpy.QtWidgets import ( - QApplication, QFrame, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QWidget) + QApplication, QFrame, QGridLayout, QGroupBox, QHBoxLayout, QLabel, + QVBoxLayout, QWidget) from caqtwidgets.pvwidgets import CAQLabel from apps4ops.bdbase.enumkind import UserMode @@ -41,9 +42,11 @@ class GUIHeader(QWidget): self.header_groups = self.settings.data["header"] self.header_status = [None] * len(self.header_groups) - offset = 0 - self.header_row = {"COMET": 2+offset, "BMA1": 2+offset, "G1": 2+offset, "SH": 1+offset, "G2": 2+offset, - "O2": 1+offset, "PIF": 0, "G3": 0+offset, "MASTER": 2+offset} + self.header_height = 234 + offset = 1 + + self.header_row = {"COMET": 4+offset, "BMA1": 4+offset, "G1": 4+offset, "SH": 2+offset, "G2": 3+offset, + "O2": 2+offset, "PIF": 0, "G3":1+offset, "MASTER": 4+offset} # self.header_row = {"COMET": 0, "G1": 0, "SH": 0, "G2": 0, "O2": 0, # "PIF": 0, "G3": 0, "MASTER": 0} @@ -144,9 +147,9 @@ class GUIHeader(QWidget): self.header_row[sector], j - 1, 2, 5) # j -3 with_sub_master j += 1 else: - align = Qt.AlignTop if sector == "SH" else Qt.AlignCenter + align = Qt.AlignTop # if sector == "SH" else Qt.AlignCenter #align = Qt.AlignBottom if sector == "PG3" else align - + self.grid_layout.addWidget( self.beam_current_widget( header=sector, pv=pv, color_obj=color), @@ -155,74 +158,81 @@ class GUIHeader(QWidget): if sector == "G3": self.grid_layout.addWidget( QFrame(), self.header_row[sector], j + 1, 2, 3, - align) - + align) j += 1 - + offset = 2 if sector in ["PIF"]: - qw = draw_box(nheight=10, nwidth=8, area="PRE-G3") - self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align) + qw = draw_box(nheight=10, nwidth=8+16, area="PRE-G3") + self.grid_layout.addWidget(qw, 0+offset-0, j - 1, 3, 1, align) j += 1 elif sector in ["O2"]: - qw = draw_box(nheight=5, nwidth=16, area="PRE-PIF") - self.grid_layout.addWidget(qw, 0+offset, j - 1, 1, 1, align) - qw = draw_box(nheight=10, nwidth=8, area="O2") - self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align) + qw1 = draw_box(nheight=5, nwidth=16, area="PRE-PIF") + self.grid_layout.addWidget(qw1, 0+offset, j - 1, 2, 1, align) + qw = draw_box(nheight=15, nwidth=8, area="O2") + vbox = QVBoxLayout() + qf = QFrame() + qf.setFixedHeight(1) + vbox.addWidget(qf) + vbox.addWidget(qw) + self.grid_layout.addLayout(vbox, 0, j, 4, 1, align) + #qf = QFrame() + #qf.setFixedHeight(qw1.height()-10) + #self.grid_layout.addWidget(qf, 0, 13, 2, 1, align) j += 1 elif sector in ["COMET"]: qw = draw_box(nheight=10, nwidth=8, area="POST-COMET") - self.grid_layout.addWidget(qw, 1+offset, j, 2, 1, align) + self.grid_layout.addWidget(qw, 2+offset, j, 3, 1, align) j += 1 elif sector in ["BMA1"]: - qw = draw_box(nheight=10, nwidth=10, area="POST-BMA1") - self.grid_layout.addWidget(qw, 1+offset, j, 2, 1, align) + qw = draw_box(nheight=15, nwidth=12, area="POST-BMA1") + self.grid_layout.addWidget(qw, 1+offset, j, 4, 1, align) j += 1 elif sector in ["SH"]: qw = draw_box(nheight=15, nwidth=10, area="POST-SH") - self.grid_layout.addWidget(qw, 0+offset, j, 3, 1, align) + self.grid_layout.addWidget(qw, 0+offset, j, 4, 1, align) j += 1 elif sector in ["G1"]: qw = draw_box(nheight=5, nwidth=16, area="G1") - self.grid_layout.addWidget(qw, 1+offset, j - 1, 1, 1, align) + self.grid_layout.addWidget(qw, 1+offset, j - 1, 2, 1, align) qw = draw_box(nheight=10, nwidth=8, area="PRE-SH") - self.grid_layout.addWidget(qw, 1+offset, j, 2, 1, align) + self.grid_layout.addWidget(qw, 1+offset, j, 3, 1, align) j += 1 elif sector in ["G2"]: qw = draw_box(nheight=10, nwidth=16, area="G2") self.grid_layout.addWidget(qw, 0+offset, j - 1, 2, 1, align) qw = draw_box(nheight=10, nwidth=8, area="PRE-O2") - self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align) + self.grid_layout.addWidget(qw, 0+offset, j, 3, 1, align) j += 1 elif sector not in ["MASTER", "G3"]: qw = draw_box() - self.grid_layout.addWidget(qw, 0+offset, j, 2, 1, align) + self.grid_layout.addWidget(qw, 0+offset, j-1, 2, 1, align) j += 1 self.shift_type = CAQLabel(self, pv_name="PRO-HUSH:SHIFT-TYPE") - self.grid_layout.addWidget(self.shift_type, 0, 0, 1, 2, Qt.AlignLeft) + self.grid_layout.addWidget(self.shift_type, 1, 0, 1, 2, Qt.AlignBottom | Qt.AlignLeft) hbox1 = QHBoxLayout() ama1_label = QLabel("AMA1:") ama1 = CAQLabel(self, pv_name="AMA1:SOL:2", show_units=True) hbox1.addWidget(ama1_label) hbox1.addWidget(ama1) - self.grid_layout.addLayout(hbox1, 0, 2, 1, 2, Qt.AlignRight) + self.grid_layout.addLayout(hbox1, 1, 2, 1, 2, Qt.AlignTop | Qt.AlignRight) hbox = QHBoxLayout() ama3_label = QLabel("AMA3:") ama3 = CAQLabel(self, pv_name="AMA3:SOL:2", show_units=True) hbox.addWidget(ama3_label) hbox.addWidget(ama3) - self.grid_layout.addLayout(hbox, 0, 5, 1, 3, Qt.AlignCenter) + self.grid_layout.addLayout(hbox, 1, 6, 1, 3, Qt.AlignTop | Qt.AlignHCenter) hbox2 = QHBoxLayout() amd2_label = QLabel("AMD2:") amd2 = CAQLabel(self, pv_name="AMD2:SOL:2", show_units=True) hbox2.addWidget(amd2_label) hbox2.addWidget(amd2) - self.grid_layout.addLayout(hbox2, 0, 10, 1, 2, Qt.AlignCenter) + self.grid_layout.addLayout(hbox2, 1, 9, 1, 2, Qt.AlignTop | Qt.AlignRight) b1_label = QLabel("B1") - self.grid_layout.addWidget(b1_label, 3+offset, 1, 1, 1, Qt.AlignTop | Qt.AlignHCenter) - b2_label = QLabel(" B2 B3-B6") - self.grid_layout.addWidget(b2_label, 3+offset, 3, 1, 1, Qt.AlignTop | Qt.AlignLeft) + self.grid_layout.addWidget(b1_label, 4+offset, 1, 1, 1, Qt.AlignVCenter | Qt.AlignHCenter) + b2_label = QLabel("B2 B3-B6") + self.grid_layout.addWidget(b2_label, 4+offset, 3, 1, 1, Qt.AlignVCenter | Qt.AlignHCenter) b7_label = QLabel("B7-B9") self.grid_layout.addWidget(b7_label, 2+offset, 5, 1, 1, Qt.AlignTop | Qt.AlignHCenter) @@ -231,9 +241,9 @@ class GUIHeader(QWidget): b13_label = QLabel("B13-B15 ") self.grid_layout.addWidget(b13_label, 2+offset, 9, 1, 1, Qt.AlignTop | Qt.AlignHCenter) b16_label = QLabel("B16-B18 ") - self.grid_layout.addWidget(b16_label, 1+offset, 11, 1, 1, Qt.AlignTop | Qt.AlignHCenter) - b19_label = QLabel("B19 B20") - self.grid_layout.addWidget(b19_label, 1+offset, 13, 1, 1, Qt.AlignTop | Qt.AlignHCenter) + self.grid_layout.addWidget(b16_label, 0+offset, 10, 1, 1, Qt.AlignTop| Qt.AlignRight) + b19_label = QLabel("B19 B20 ") + self.grid_layout.addWidget(b19_label, 0+offset, 12, 1, 1, Qt.AlignTop | Qt.AlignRight) if has_hbox_layout: self.grid_layout.setSpacing(6) @@ -249,7 +259,7 @@ class GUIHeader(QWidget): self.header_wgt.setFixedHeight(110) else: self.header_wgt.setLayout(self.grid_layout) - self.header_wgt.setFixedHeight(160) + self.header_wgt.setFixedHeight(self.header_height) title = "PROSCAN {0}".format(self.user_mode.name) if self.title: @@ -326,6 +336,8 @@ class GUIHeader(QWidget): self.beam_current_wgt_dict[ wgt_val].trigger_monitor_str.emit( self.sector_disruptor_dict[wgt_val], 1, 0) + #self.toPIF("ON") + #self.toG3("ON") def enable_disable_beamline(sect, sector_line, value): @@ -351,12 +363,10 @@ class GUIHeader(QWidget): self.toSH(action) if "Geschlossen" not in self.sector_disruptor_dict["G1"]: self.toSH("OFF") - elif sector == "G1": self.toG1(action) if action == "ON": self.toSH("OFF") - elif sector == "G2": self.toG2(action) reset_check_mini_post_sh() @@ -455,7 +465,9 @@ class GUIHeader(QWidget): color = "green" if on_off == "ON" else self.pf_bgcolor() for key, pf in self.pframe_matrix["PRE-G3"][3].items(): pf.setStyleSheet("background-color:{0};".format(color)) - + for key, pf in self.pframe_matrix["O2"][11].items(): + pf.setStyleSheet("background-color:{0};".format(color)) + def toSH(self, on_off: str = "ON"): color = "green" if on_off == "ON" else self.pf_bgcolor() @@ -463,12 +475,12 @@ class GUIHeader(QWidget): pf.setStyleSheet("background-color:{0};".format(color)) for key, pf in self.pframe_matrix["PRE-SH"][3].items(): pf.setStyleSheet("background-color:{0};".format(color)) - for i in range(0, 5): - pf = self.pframe_matrix["POST-BMA1"][8 - i][i + 2] - pf.setStyleSheet("background-color:{0};".format(color)) - for i in range(7, 10): - pf = self.pframe_matrix["POST-BMA1"][3][i] + for i in range(3, 12): + pf = self.pframe_matrix["POST-BMA1"][15-i][i] pf.setStyleSheet("background-color:{0};".format(color)) + #for i in range(7, 10): + # pf = self.pframe_matrix["POST-BMA1"][3][i] + # pf.setStyleSheet("background-color:{0};".format(color)) self.toBMA1(on_off) self.afterBMA1(on_off) @@ -476,7 +488,7 @@ class GUIHeader(QWidget): def afterBMA1(self, on_off: str = "ON"): color = "green" if on_off == "ON" else self.pf_bgcolor() for i in range(0, 3): - pf = self.pframe_matrix["POST-BMA1"][8][i] + pf = self.pframe_matrix["POST-BMA1"][13][i] pf.setStyleSheet("background-color:{0};".format(color)) def toBMA1(self, on_off: str = "ON"): @@ -501,22 +513,39 @@ class GUIHeader(QWidget): self.afterBMA1(on_off) def toPIF(self, on_off: str = "ON"): - color = "green" if on_off == "ON" else self.pf_bgcolor() for i in range(0, 5): pf = self.pframe_matrix["POST-SH"][8 - i][i + 2] pf.setStyleSheet("background-color:{0};".format(color)) for i in range(7, 10): pf = self.pframe_matrix["POST-SH"][3][i] - pf.setStyleSheet("background-color:{0};".format(color)) + pf.setStyleSheet("background-color:{0};".format(color)) for key, pf in self.pframe_matrix["G2"][3].items(): pf.setStyleSheet("background-color:{0};".format(color)) for key, pf in self.pframe_matrix["PRE-O2"][3].items(): pf.setStyleSheet("background-color:{0};".format(color)) - for key, pf in self.pframe_matrix["O2"][3].items(): - pf.setStyleSheet("background-color:{0};".format(color)) + + #for key, pf in self.pframe_matrix["O2"][11].items(): + # pf.setStyleSheet("background-color:{0};".format(color)) + for key, pf in self.pframe_matrix["PRE-PIF"][3].items(): pf.setStyleSheet("background-color:{0};".format(color)) + + for i in range(5, 8): + pf = self.pframe_matrix["O2"][5][i] + pf.setStyleSheet("background-color:{0};".format(color)) + pf = self.pframe_matrix["O2"][6][4] + pf.setStyleSheet("background-color:{0};".format(color)) + pf = self.pframe_matrix["O2"][7][3] + pf.setStyleSheet("background-color:{0};".format(color)) + pf = self.pframe_matrix["O2"][8][2] + pf.setStyleSheet("background-color:{0};".format(color)) + pf = self.pframe_matrix["O2"][9][1] + pf.setStyleSheet("background-color:{0};".format(color)) + pf = self.pframe_matrix["O2"][10][0] + pf.setStyleSheet("background-color:{0};".format(color)) + + self.toSHOverlap(on_off) self.afterBMA1(on_off) @@ -533,7 +562,7 @@ class GUIHeader(QWidget): def toG1(self, on_off: str = "ON"): color = "green" if on_off == "ON" else self.pf_bgcolor() - for key, pf in self.pframe_matrix["POST-BMA1"][8].items(): + for key, pf in self.pframe_matrix["POST-BMA1"][13].items(): pf.setStyleSheet("background-color:{0};".format(color)) def toG2(self, on_off: str = "ON"):