Add position status (health) bar math for sizing and styling
							parent
							
								
									457cc1a128
								
							
						
					
					
						commit
						4d66c7ad88
					
				| 
						 | 
				
			
			@ -167,11 +167,11 @@ class FieldsForm(QWidget):
 | 
			
		|||
            QSizePolicy.Fixed,
 | 
			
		||||
        )
 | 
			
		||||
        # self.setMaximumHeight(30)
 | 
			
		||||
        self.setMaximumWidth(120)
 | 
			
		||||
        self.setMaximumWidth(166)
 | 
			
		||||
 | 
			
		||||
        # split layout for the (label:| text bar entry)
 | 
			
		||||
        self.vbox = QtGui.QVBoxLayout(self)
 | 
			
		||||
        self.vbox.setAlignment(Qt.AlignBottom)
 | 
			
		||||
        self.vbox.setAlignment(Qt.AlignTop)
 | 
			
		||||
        self.vbox.setContentsMargins(0, 0, 4, 0)
 | 
			
		||||
        self.vbox.setSpacing(3)
 | 
			
		||||
        # self.vbox.addStretch()
 | 
			
		||||
| 
						 | 
				
			
			@ -179,14 +179,14 @@ class FieldsForm(QWidget):
 | 
			
		|||
        self.labels: dict[str, QLabel] = {}
 | 
			
		||||
        self.fields: dict[str, QWidget] = {}
 | 
			
		||||
 | 
			
		||||
        self._font_size = _font_small.px_size - 1
 | 
			
		||||
        self._font_size = _font_small.px_size - 2
 | 
			
		||||
        self._max_item_width: (float, float) = 0, 0
 | 
			
		||||
 | 
			
		||||
    def add_field_label(
 | 
			
		||||
        self,
 | 
			
		||||
        name: str,
 | 
			
		||||
        font_size: Optional[int] = None,
 | 
			
		||||
        font_color: str = 'default_light',
 | 
			
		||||
        font_color: str = 'default_lightest',
 | 
			
		||||
 | 
			
		||||
    ) -> QtGui.QLabel:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -347,12 +347,6 @@ async def open_form(
 | 
			
		|||
 | 
			
		||||
    form = FieldsForm(parent)
 | 
			
		||||
 | 
			
		||||
    # form.add_field_label(
 | 
			
		||||
    #     '### **pp conf**\n---',
 | 
			
		||||
    #     font_size=_font.px_size - 2,
 | 
			
		||||
    #     font_color='default_lightest',
 | 
			
		||||
    # )
 | 
			
		||||
 | 
			
		||||
    for name, config in fields.items():
 | 
			
		||||
        wtype = config['type']
 | 
			
		||||
        key = str(config['key'])
 | 
			
		||||
| 
						 | 
				
			
			@ -366,23 +360,75 @@ async def open_form(
 | 
			
		|||
            values = list(config['default_value'])
 | 
			
		||||
            form.add_select_field(key, values)
 | 
			
		||||
 | 
			
		||||
    # form.add_field_label('fills:')
 | 
			
		||||
    form.vbox.addSpacing(6)
 | 
			
		||||
    form.add_field_label('fill status')
 | 
			
		||||
    form.vbox.addSpacing(6)
 | 
			
		||||
 | 
			
		||||
    fill_bar = QProgressBar(form)
 | 
			
		||||
    fill_bar.setMinimum(0)
 | 
			
		||||
    fill_bar.setMaximum(4)
 | 
			
		||||
    fill_bar.setValue(3)
 | 
			
		||||
    import math
 | 
			
		||||
    slots = 4
 | 
			
		||||
    border_size_px = 2
 | 
			
		||||
    slot_margin_px = 2  #1.375
 | 
			
		||||
    h = 150  #+ (2*2 + slot_margin_px*slots*2)
 | 
			
		||||
    # multiples, r = divmod(h, slots)
 | 
			
		||||
    slot_height_px = math.floor((h - 2*border_size_px)/slots) - slot_margin_px*1
 | 
			
		||||
 | 
			
		||||
    fill_bar.setOrientation(Qt.Vertical)
 | 
			
		||||
    fill_bar.setStyleSheet(
 | 
			
		||||
        f"""QProgressBar {{
 | 
			
		||||
            color : {hcolor('gunmetal')};
 | 
			
		||||
            font-size : {form._font_size}px;
 | 
			
		||||
            background-color: {hcolor('papas_special')};
 | 
			
		||||
            color: {hcolor('bracket')};
 | 
			
		||||
        }}
 | 
			
		||||
        """
 | 
			
		||||
    )
 | 
			
		||||
        f"""
 | 
			
		||||
        QProgressBar {{
 | 
			
		||||
 | 
			
		||||
    form.vbox.addWidget(fill_bar)
 | 
			
		||||
            text-align: center;
 | 
			
		||||
 | 
			
		||||
            font-size : {form._font_size - 2}px;
 | 
			
		||||
 | 
			
		||||
            background-color: {hcolor('papas_special')};
 | 
			
		||||
            color : {hcolor('papas_special')};
 | 
			
		||||
 | 
			
		||||
            border: {border_size_px}px solid {hcolor('default_light')};
 | 
			
		||||
            border-radius: 2px;
 | 
			
		||||
        }}
 | 
			
		||||
 | 
			
		||||
        QProgressBar::chunk {{
 | 
			
		||||
 | 
			
		||||
            background-color: {hcolor('default_lightest')};
 | 
			
		||||
            color: {hcolor('papas_special')};
 | 
			
		||||
 | 
			
		||||
            border-radius: 2px;
 | 
			
		||||
 | 
			
		||||
            margin: {slot_margin_px}px;
 | 
			
		||||
            height: {slot_height_px}px;
 | 
			
		||||
 | 
			
		||||
        }}
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
            # margin-bottom: {slot_margin_px*2}px;
 | 
			
		||||
            # margin-top: {slot_margin_px*2}px;
 | 
			
		||||
            # color: #19232D;
 | 
			
		||||
        # QProgressBar::chunk:disabled {{
 | 
			
		||||
        #     background-color: #26486B;
 | 
			
		||||
        #     color: #9DA9B5;
 | 
			
		||||
        #     border-radius: 4px;
 | 
			
		||||
        #     height: 20px;
 | 
			
		||||
        # }}
 | 
			
		||||
            # margin-top: 3px;
 | 
			
		||||
            # margin-bottom: 3px;
 | 
			
		||||
           # width: 10px;
 | 
			
		||||
           # color: #E0E1E3;
 | 
			
		||||
           # background-color: #19232D;
 | 
			
		||||
 | 
			
		||||
           # color : {hcolor('gunmetal')};
 | 
			
		||||
           # background-color: {hcolor('bracket')};
 | 
			
		||||
           # color: {hcolor('bracket')};
 | 
			
		||||
    )
 | 
			
		||||
    fill_bar.setRange(0, slots)
 | 
			
		||||
    fill_bar.setValue(slots)
 | 
			
		||||
    fill_bar.setFormat('')
 | 
			
		||||
    fill_bar.setMinimumHeight(h)
 | 
			
		||||
    fill_bar.setMaximumHeight(h + slots*slot_margin_px)
 | 
			
		||||
    fill_bar.setMinimumWidth(36)
 | 
			
		||||
 | 
			
		||||
    form.vbox.addWidget(fill_bar, alignment=Qt.AlignCenter)
 | 
			
		||||
 | 
			
		||||
    # form.vbox.addStretch()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue