def update_widget(self): # On reinitialise le layout et la liste des layouts clear_layout(self.vbox) self.list_layout_raison = {} # Si la liste de raison est vide if len(self.arret.raisons) == 0: self.initial_line = self.create_initial_line() # On ajout la ligne pas de raison sélectionné self.vbox.addLayout(self.initial_line) else: index = 0 first_type = None self.radio_button_manager = RadioButtonManager() self.radio_button_manager.ON_RADIO_BUTTON_CHANGED_SIGNAL.connect( self.on_radio_button_changed) for raison in self.arret.raisons: if index == 0: raison.update_to_raison_primaire() if not first_type: first_type = raison.type line_raison = self.create_line_raison(raison, first_type) self.list_layout_raison[index] = line_raison self.vbox.addLayout(line_raison) index += 1 self.setLayout(self.vbox)
def update_widget(self): self.plan_prod.data_reglages.update_reglage() clear_layout(self.vbox) self.vbox.addWidget(LineMasterTitle(parent=self)) # Bloc Préparation Production vbox_prepa = QVBoxLayout() vbox_prepa.setSpacing(2) vbox_prepa.addWidget(LineTitle(parent=self, text="Préparation production")) for data_reglage in self.plan_prod.data_reglages.data_reglages: if not data_reglage.reglage.is_optionnel() and data_reglage.reglage.cat != "CHAUFFE": vbox_prepa.addWidget(LineReglage(parent=self, data_reglage=data_reglage)) self.vbox.addLayout(vbox_prepa) # Bloc Préparation Optionnelle vbox_option = QVBoxLayout() vbox_option.setSpacing(2) vbox_option.addWidget(LineTitle(parent=self, text="Préparation optionnelle")) for data_reglage in self.plan_prod.data_reglages.data_reglages: if data_reglage.reglage.is_optionnel(): vbox_option.addWidget(LineReglage(parent=self, data_reglage=data_reglage)) self.vbox.addLayout(vbox_option) # Bloc Temps de Réglage vbox_time = QVBoxLayout() vbox_time.setSpacing(2) vbox_time.addWidget(LineTitle(parent=self, text="Temps de préparation")) vbox_time.addWidget(LineTime(parent=self, text="Temps de préparation de l'aide conducteur (AC)", time=self.plan_prod.data_reglages.time_aide)) vbox_time.addWidget(LineTime(parent=self, text="Temps de préparation du conducteur (C)", time=self.plan_prod.data_reglages.time_conducteur)) for data_reglage in self.plan_prod.data_reglages.data_reglages: if not data_reglage.reglage.is_optionnel() and data_reglage.reglage.cat == "CHAUFFE": vbox_time.addWidget(LineTime(parent=self, text=data_reglage.reglage.des, time=data_reglage.reglage.time)) self.vbox.addLayout(vbox_time) self.vbox.addStretch(0)
def update_widget(self): self.get_bobines() clear_layout(self.vbox) self.vbox.addWidget(LineLegend(parent=self)) for key, value in self.dict_bobines.items(): bobine = bobine_fille_store.get_bobine(code=key) self.vbox.addWidget(LineBobine(parent=self, bobine=bobine, quantity=value))
def on_loading(self, layout, gif_name="loader_white_green", set_text=True, size=40): from commun.utils.layout import clear_layout clear_layout(layout) from PyQt5.QtWidgets import QVBoxLayout, QLabel from PyQt5.Qt import Qt, QSize container_loader = QVBoxLayout() container_loader.addStretch(1) loader = QLabel() from PyQt5.QtGui import QMovie movie = QMovie("commun/assets/movie/{}.gif".format(gif_name)) movie.setScaledSize(QSize(size, size)) loader.setMovie(movie) loader.setFixedSize(size, size) movie.start() container_loader.addWidget(loader, alignment=Qt.AlignCenter | Qt.AlignVCenter) if set_text: label_loading = QLabel("Chargement...") from commun.constants.stylesheets import black_16_label_stylesheet label_loading.setStyleSheet(black_16_label_stylesheet) container_loader.addWidget(label_loading, alignment=Qt.AlignCenter | Qt.AlignVCenter) container_loader.addStretch(1) layout.addLayout(container_loader) self.setLayout(layout)
def update_widget(self): print("update_widget") clear_layout(self.master_hbox) self.clear_bt = PixmapButton(parent=self) self.init_button() self.master_hbox.addLayout(self.get_content()) if self.data_type != "bobine": self.master_hbox.addWidget(self.clear_bt)
def update_widget(self, menu_selected="chart_stat"): clear_layout(self.content_vbox) if menu_selected == "chart_stat": settings_store.set(day_ago=0) self.content_vbox.addLayout(self.create_stat_layout()) elif menu_selected == "rapport": self.content_vbox.addLayout(self.create_rapport_layout()) elif menu_selected == "team_gestion": self.content_vbox.addLayout(self.create_team_gestion_layout()) else: self.content_vbox.addLayout(self.create_prod_layout())
def on_data_type_changed(self): from commun.utils.layout import clear_layout clear_layout(self.vbox) if filter_store.data_type == "bobine": selector = SelectorTable(parent=self, plan_prod=self.plan_prod) else: selector = Selector(parent=self, plan_prod=self.plan_prod) selector_filter = SelectorFilter(parent=self) self.vbox.addWidget(selector_filter) self.vbox.addWidget(selector) self.setFixedWidth(self.sizeHint().width())
def init_widget(self): clear_layout(self.vbox) self.vbox.setContentsMargins(0, 0, 0, 0) self.vbox.setSpacing(20) self.vbox.addLayout(self.create_master_title()) self.vbox.addWidget(self.create_master_stat()) self.vbox.addWidget(self.create_title("Historique des vitesses")) self.vbox.addWidget(self.create_chart(), alignment=Qt.AlignCenter) self.vbox.addWidget(self.create_title("Performance de la journée")) self.vbox.addLayout(self.create_stat()) self.vbox.addWidget(self.create_title("Détail des arrêts remarquables machine")) self.vbox.setSpacing(10) self.vbox.addLayout(self.create_info_arret()) self.vbox.addLayout(self.create_list_arret()) self.setLayout(self.vbox)
def update_widget(self): clear_layout(self.vbox) if self.plan_prod.is_completed(): label_completed = QLabel("Production complète") label_completed.setStyleSheet(green_12_label_stylesheet) self.vbox.addWidget(label_completed) else: bobine_poly = "une bobine mère polypro " if self.plan_prod.bobine_papier_selected: bobine_poly = "" perfo = "une campagne de perforation " if self.plan_prod.bobine_papier_selected: perfo = "" bobine_papier = "une bobine mère papier " if self.plan_prod.bobine_papier_selected: bobine_papier = "" refente = "une refente " if self.plan_prod.bobine_papier_selected: refente = "" bobine_fille = "une ou des bobines filles" if self.plan_prod.refente_is_completed(): bobine_fille = "" label_not_completed = QLabel( "Production imcomplète, il manque : {}{}{}{}{}".format( bobine_poly, perfo, bobine_papier, refente, bobine_fille)) label_not_completed.setStyleSheet(red_12_label_stylesheet) self.vbox.addWidget(label_not_completed) if not self.plan_prod.tours: label_not_tours = QLabel("Aucun nombre de tours rensigné") label_not_tours.setStyleSheet(red_12_label_stylesheet) self.vbox.addWidget(label_not_tours) elif not self.plan_prod.is_valid_tours(): max_tour = self.plan_prod.get_max_tour() text = "La production est trop longue, nombre de tours maximum pour cette production : {}".format( max_tour) label_tours_to_hight = QLabel(text) label_tours_to_hight.setStyleSheet(red_12_label_stylesheet) self.vbox.addWidget(label_tours_to_hight)
def init_widget(self): clear_layout(self.hbox) self.bars = [] self.hbox.setContentsMargins(10, 0, 10, 0) self.hbox.setSpacing(5) len_format = 0 if settings_stat_store.format == "week": len_format = 5 if settings_stat_store.format == "month": len_format = len(stat_store.data["total"]) if settings_stat_store.format == "years": len_format = len(stat_store.data["total"]) index = 0 while index < len_format: hbox_multi_bar = QHBoxLayout() hbox_multi_bar.setContentsMargins(0, 0, 0, 0) hbox_multi_bar.setSpacing(0) index_data = 0 while index_data < len(stat_store.data): if settings_stat_store.display_setting[index_data]: if settings_stat_store.data_type == "métrage": moment = "matin" if index_data == 0 else "" moment = "soir" if index_data == 1 else moment moment = "total" if index_data == 2 else moment else: moment = "Prévu" if index_data == 0 else "" moment = "Imprévu" if index_data == 1 else moment moment = "total" if index_data == 2 else moment value = stat_store.data[moment][index][1] if len(stat_store.data[moment]) > index else -1 color = self.color_data_métrage[index_data] if settings_stat_store.data_type == "métrage"\ else self.color_data_temps[index_data] hbox_multi_bar.addLayout(self.create_bar(value=value, color=color)) index_data += 1 self.hbox.addLayout(hbox_multi_bar) index += 1 self.setLayout(self.hbox)
def update_widget(self): """ S'occupe de vider le tableau existant et de le remplir avec les nouvelles données :return: """ self.scroll_layout = clear_layout(self.scroll_layout) number = 1 # Trie les arrets par ordre chronologique list_arret = sorted(self.list_arret, key=lambda arret: arret.start) # Parcour la liste des arrets et crée une line pour chaque arret for arret in list_arret: line_arret = LineArret(parent=self, day_ago=self.day_ago, arret=arret, number=number) self.scroll_layout.addWidget(line_arret) number += 1 if number == 1: line_arret = LineArret(parent=self, day_ago=self.day_ago, arret=None, number=number) self.scroll_layout.addWidget(line_arret)
def create_tab(self): clear_layout(self.content_tab) self.array_text_edit = [] for values in self.current_data: self.content_tab.addLayout(self.create_line(values))
def update_widget(self): clear_layout(self.hbox) self.init_widget()
def on_settings_stat_changed(self): clear_layout(self.hbox) if settings_stat_store.data_type == "raisons prévue" or settings_stat_store.data_type == "raisons imprévue": self.create_line_tittle_raison() else: self.create_line_tittle_team()
def on_data_stat_changed(self): """ Lorsque les données changent on clear le layout et on le recrée avec les nouvelle valeur """ clear_layout(self.vbox_master) self.init_widget()
def on_settings_stat_changed(self): clear_layout(self.hbox) try: self.init_widget() except: logger.log("CHART_STAT", "Erreur de mise à jour lors du chargement des settings du chart")
def deleteLater(self): from commun.utils.layout import clear_layout clear_layout(self.hbox) super(BobineFilleSelected, self).deleteLater()