Source code for pyleecan.GUI.Dialog.DMachineSetup.SBar.WBarOut.WBarOut

from PySide2.QtCore import QSize
from PySide2.QtWidgets import QGroupBox, QLabel, QVBoxLayout, QWidget

from ......GUI import gui_option


[docs]class WBarOut(QGroupBox): """Setup of QGroupBox for output for Winding Slot""" def __init__(self, parent=None): """Initialize the widget""" # Main widget setup QGroupBox.__init__(self, parent) self.u = gui_option.unit self.setTitle(self.tr("Output")) self.setMinimumSize(QSize(200, 0)) self.setObjectName("g_output") self.layout = QVBoxLayout(self) self.layout.setObjectName("layout") # The widget is composed of 3 QLabel in a vertical layout self.out_Sbar = QLabel(self) self.out_Sbar.setObjectName("out_Sbar") self.layout.addWidget(self.out_Sbar) self.out_Sslot = QLabel(self) self.out_Sslot.setObjectName("out_Sslot") self.layout.addWidget(self.out_Sslot) self.out_ratio = QLabel(self) self.out_ratio.setMinimumSize(QSize(140, 0)) self.out_ratio.setObjectName("out_ratio") self.layout.addWidget(self.out_ratio)
[docs] def comp_output(self): """Update the Output text with the computed values Parameters ---------- self : WBarOut A WBarOut object """ # For readibility obj = self.parent().machine.rotor.winding.conductor # Update Bar surface if possible txt_Sbar = self.tr("Sbar: ") try: Sbar = format(self.u.get_m2(obj.comp_surface_active()), ".4g") self.out_Sbar.setText(txt_Sbar + Sbar + " [" + self.u.get_m2_name() + "]") except Exception: self.out_Sbar.setText(txt_Sbar + "?") # Update Slot surface if possible txt_Sslot = self.tr("Sslot: ") try: Sslot = format( self.u.get_m2(self.parent().machine.rotor.slot.comp_surface()), ".4g" ) self.out_Sslot.setText( txt_Sslot + Sslot + " [" + self.u.get_m2_name() + "]" ) except Exception: self.out_Sslot.setText(txt_Sslot + " ?") # Update ratio if possible txt_ratio = self.tr("Sbar / Sslot: ") try: ratio = "%.4g" % (float(Sbar) / float(Sslot) * 100) self.out_ratio.setText(txt_ratio + ratio + " [%]") except Exception: self.out_ratio.setText(txt_ratio + "?")