34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
#!/usr/bin/python3
|
|
|
|
from PyQt6.QtCore import Qt
|
|
from PyQt6.QtGui import QFont
|
|
from PyQt6.QtWidgets import QGroupBox, QLabel, QSizePolicy, QFormLayout
|
|
|
|
|
|
class SubCategory(QGroupBox):
|
|
description_font = QFont()
|
|
description_font.setPointSize(8)
|
|
|
|
def __init__(self, title: str, description: str=None, parent=None):
|
|
super().__init__(title, parent)
|
|
|
|
self.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
|
self.setAlignment(Qt.AlignmentFlag.AlignLeading | Qt.AlignmentFlag.AlignVCenter)
|
|
|
|
self.setStyleSheet("QGroupBox{font-weight: bold;}")
|
|
|
|
self.layout = QFormLayout()
|
|
self.setLayout(self.layout)
|
|
|
|
if description is not None:
|
|
self.description = QLabel(description + "\n", self)
|
|
self.layout.addRow(self.description)
|
|
|
|
def add_setting(self, text: str, setting, description: str=None):
|
|
self.layout.addRow(text, setting)
|
|
|
|
if description is not None:
|
|
description_label = QLabel(" " + description.replace("\n", "\n "))
|
|
description_label.setFont(self.description_font)
|
|
self.layout.addRow(description_label)
|
|
|